> For the complete documentation index, see [llms.txt](https://bots-mother.gitbook.io/bots-mother-help/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bots-mother.gitbook.io/bots-mother-help/pre-built-libraries/bot-library-functions-1.md).

# BotAPI:: Library Functions

### BotAPI::sendPhoto

**BotAPI::sendPhoto($params)**\
**Description**: Sends a photo to a specified Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID to send the photo to.
* `photo` (string) – URL or file path of the photo.
* `caption` (string, optional) – Photo caption.
* `parse_mode` (string, optional) – Format of the caption ("HTML" or "Markdown").
* `reply_markup` (array, optional) – Inline or custom keyboard markup.\
  **Example**:

```php
BotAPI::sendPhoto([
    'chat_id' => $chatId,
    'photo' => 'https://example.com/photo.jpg',
    'caption' => 'A beautiful sunset!',
    'parse_mode' => 'HTML'
]);
```

### BotAPI::sendVideo

**BotAPI::sendVideo($params)**\
**Description**: Sends a video to a specified Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID to send the video to.
* `video` (string) – URL or file path of the video.
* `caption` (string, optional) – Video caption.
* `parse_mode` (string, optional) – Format of the caption ("HTML" or "Markdown").
* `reply_markup` (array, optional) – Inline or custom keyboard markup.\
  **Example**:

```php
BotAPI::sendVideo([
    'chat_id' => $chatId,
    'video' => 'https://example.com/video.mp4',
    'caption' => 'Check this clip!',
    'parse_mode' => 'Markdown'
]);
```

### BotAPI::sendAudio

**BotAPI::sendAudio($params)**\
**Description**: Sends an audio file to a specified Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID to send the audio to.
* `audio` (string) – URL or file path of the audio file.
* `caption` (string, optional) – Audio caption.
* `parse_mode` (string, optional) – Format of the caption ("HTML" or "Markdown").
* `reply_markup` (array, optional) – Inline or custom keyboard markup.\
  **Example**:

```php
BotAPI::sendAudio([
    'chat_id' => $chatId,
    'audio' => 'https://example.com/audio.mp3',
    'caption' => 'My favorite song!'
]);
```

### BotAPI::sendDocument

**BotAPI::sendDocument($params)**\
**Description**: Sends a document to a specified Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID to send the document to.
* `document` (string) – URL or file path of the document.
* `caption` (string, optional) – Document caption.
* `parse_mode` (string, optional) – Format of the caption ("HTML" or "Markdown").
* `reply_markup` (array, optional) – Inline or custom keyboard markup.\
  **Example**:

```php
BotAPI::sendDocument([
    'chat_id' => $chatId,
    'document' => 'https://example.com/doc.pdf',
    'caption' => 'Project report'
]);
```

### BotAPI::sendSticker

**BotAPI::sendSticker($params)**\
**Description**: Sends a sticker to a specified Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID to send the sticker to.
* `sticker` (string) – URL or file ID of the sticker.
* `reply_markup` (array, optional) – Inline or custom keyboard markup.\
  **Example**:

```php
BotAPI::sendSticker([
    'chat_id' => $chatId,
    'sticker' => 'https://example.com/sticker.webp'
]);
```

### BotAPI::sendVoice

**BotAPI::sendVoice($params)**\
**Description**: Sends a voice message to a specified Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID to send the voice message to.
* `voice` (string) – URL or file path of the voice file.
* `caption` (string, optional) – Voice message caption.
* `parse_mode` (string, optional) – Format of the caption ("HTML" or "Markdown").
* `reply_markup` (array, optional) – Inline or custom keyboard markup.\
  **Example**:

```php
BotAPI::sendVoice([
    'chat_id' => $chatId,
    'voice' => 'https://example.com/voice.ogg',
    'caption' => 'Listen to this!'
]);
```

### BotAPI::sendVideoNote

**BotAPI::sendVideoNote($params)**\
**Description**: Sends a video note to a specified Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID to send the video note to.
* `video_note` (string) – URL or file path of the video note.
* `reply_markup` (array, optional) – Inline or custom keyboard markup.\
  **Example**:

```php
BotAPI::sendVideoNote([
    'chat_id' => $chatId,
    'video_note' => 'https://example.com/videonote.mp4'
]);
```

### BotAPI::sendMediaGroup

**BotAPI::sendMediaGroup($params)**\
**Description**: Sends a group of media (photos or videos) to a specified Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID to send the media group to.
* `media` (array) – Array of media objects (photos or videos).
* `reply_markup` (array, optional) – Inline or custom keyboard markup.\
  **Example**:

```php
BotAPI::sendMediaGroup([
    'chat_id' => $chatId,
    'media' => [
        ['type' => 'photo', 'media' => 'https://example.com/photo1.jpg'],
        ['type' => 'photo', 'media' => 'https://example.com/photo2.jpg']
    ]
]);
```

### BotAPI::sendLocation

**BotAPI::sendLocation($params)**\
**Description**: Sends a location to a specified Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID to send the location to.
* `latitude` (float) – Latitude of the location.
* `longitude` (float) – Longitude of the location.
* `reply_markup` (array, optional) – Inline or custom keyboard markup.\
  **Example**:

```php
BotAPI::sendLocation([
    'chat_id' => $chatId,
    'latitude' => 51.5074,
    'longitude' => -0.1278
]);
```

### BotAPI::sendVenue

**BotAPI::sendVenue($params)**\
**Description**: Sends a venue to a specified Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID to send the venue to.
* `latitude` (float) – Latitude of the venue.
* `longitude` (float) – Longitude of the venue.
* `title` (string) – Name of the venue.
* `address` (string) – Address of the venue.
* `reply_markup` (array, optional) – Inline or custom keyboard markup.\
  **Example**:

```php
BotAPI::sendVenue([
    'chat_id' => $chatId,
    'latitude' => 51.5074,
    'longitude' => -0.1278,
    'title' => 'Big Ben',
    'address' => 'London, UK'
]);
```

### BotAPI::sendContact

**BotAPI::sendContact($params)**\
**Description**: Sends a contact to a specified Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID to send the contact to.
* `phone_number` (string) – Phone number of the contact.
* `first_name` (string) – First name of the contact.
* `last_name` (string, optional) – Last name of the contact.
* `reply_markup` (array, optional) – Inline or custom keyboard markup.\
  **Example**:

```php
BotAPI::sendContact([
    'chat_id' => $chatId,
    'phone_number' => '+1234567890',
    'first_name' => 'John',
    'last_name' => 'Doe'
]);
```

### BotAPI::sendPoll

**BotAPI::sendPoll($params)**\
**Description**: Sends a poll to a specified Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID to send the poll to.
* `question` (string) – Poll question.
* `options` (array) – Array of answer options.
* `is_anonymous` (bool, optional) – Whether the poll is anonymous.
* `type` (string, optional) – Poll type ("quiz" or "regular").
* `reply_markup` (array, optional) – Inline or custom keyboard markup.\
  **Example**:

```php
BotAPI::sendPoll([
    'chat_id' => $chatId,
    'question' => 'Favorite color?',
    'options' => ['Red', 'Blue', 'Green'],
    'is_anonymous' => true
]);
```

### BotAPI::sendDice

**BotAPI::sendDice($params)**\
**Description**: Sends a dice animation to a specified Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID to send the dice to.
* `emoji` (string, optional) – Emoji for the dice (e.g., 🎲).
* `reply_markup` (array, optional) – Inline or custom keyboard markup.\
  **Example**:

```php
BotAPI::sendDice([
    'chat_id' => $chatId,
    'emoji' => '🎲'
]);
```

### BotAPI::sendChatAction

**BotAPI::sendChatAction($params)**\
**Description**: Sends a chat action (e.g., "typing") to indicate bot activity.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID.
* `action` (string) – Action type (e.g., "typing", "upload\_photo").\
  **Example**:

```php
BotAPI::sendChatAction([
    'chat_id' => $chatId,
    'action' => 'typing'
]);
```

### BotAPI::getUserProfilePhotos

**BotAPI::getUserProfilePhotos($params)**\
**Description**: Retrieves profile photos of a user.\
**Parameters**:

* `user_id` (int) – The Telegram user ID.
* `offset` (int, optional) – Offset for pagination.
* `limit` (int, optional) – Number of photos to retrieve.\
  **Example**:

```php
BotAPI::getUserProfilePhotos([
    'user_id' => $userId,
    'limit' => 10
]);
```

### BotAPI::getChatInfo

**BotAPI::getChatInfo($chatId)**\
**Description**: Retrieves information about a specified Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID.\
  **Example**:

```php
BotAPI::getChatInfo($chatId);
```

### BotAPI::banChatMember

**BotAPI::banChatMember($params)**\
**Description**: Bans a member from a Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID.
* `user_id` (int) – The user ID to ban.
* `until_date` (int, optional) – Unix timestamp for ban expiration.
* `revoke_messages` (bool, optional) – Whether to delete the user’s messages.\
  **Example**:

```php
BotAPI::banChatMember([
    'chat_id' => $chatId,
    'user_id' => $userId,
    'until_date' => time() + 86400
]);
```

### BotAPI::unbanChatMember

**BotAPI::unbanChatMember($params)**\
**Description**: Unbans a member from a Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID.
* `user_id` (int) – The user ID to unban.
* `only_if_banned` (bool, optional) – Unban only if the user is banned.\
  **Example**:

```php
BotAPI::unbanChatMember([
    'chat_id' => $chatId,
    'user_id' => $userId
]);
```

### BotAPI::restrictChatMember

**BotAPI::restrictChatMember($params)**\
**Description**: Restricts a member’s permissions in a Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID.
* `user_id` (int) – The user ID to restrict.
* `permissions` (array) – Permissions to allow or restrict.
* `until_date` (int, optional) – Unix timestamp for restriction expiration.\
  **Example**:

```php
BotAPI::restrictChatMember([
    'chat_id' => $chatId,
    'user_id' => $userId,
    'permissions' => ['can_send_messages' => false]
]);
```

### BotAPI::promoteChatMember

**BotAPI::promoteChatMember($params)**\
**Description**: Promotes a member to administrator in a Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID.
* `user_id` (int) – The user ID to promote.
* `can_change_info` (bool, optional) – Allow changing chat info.
* `can_post_messages` (bool, optional) – Allow posting messages.\
  **Example**:

```php
BotAPI::promoteChatMember([
    'chat_id' => $chatId,
    'user_id' => $userId,
    'can_change_info' => true
]);
```

### BotAPI::setChatAdministratorCustomTitle

**BotAPI::setChatAdministratorCustomTitle($params)**\
**Description**: Sets a custom title for an administrator in a Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID.
* `user_id` (int) – The administrator’s user ID.
* `custom_title` (string) – Custom title for the administrator.\
  **Example**:

```php
BotAPI::setChatAdministratorCustomTitle([
    'chat_id' => $chatId,
    'user_id' => $userId,
    'custom_title' => 'Chief Moderator'
]);
```

### BotAPI::answerCallbackQuery

**BotAPI::answerCallbackQuery($params)**\
**Description**: Responds to a callback query from an inline button.\
**Parameters**:

* `callback_query_id` (string) – The callback query ID.
* `text` (string, optional) – Notification text.
* `show_alert` (bool, optional) – Show an alert instead of a notification.
* `url` (string, optional) – URL to open.
* `cache_time` (int, optional) – Cache duration for the result.\
  **Example**:

```php
BotAPI::answerCallbackQuery([
    'callback_query_id' => $queryId,
    'text' => 'Action completed!',
    'show_alert' => false
]);
```

### BotAPI::editMessageText

**BotAPI::editMessageText($params)**\
**Description**: Edits the text of a previously sent message.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID.
* `message_id` (int) – The message ID to edit.
* `text` (string) – New message text.
* `parse_mode` (string, optional) – Format of the text ("HTML" or "Markdown").
* `reply_markup` (array, optional) – Inline or custom keyboard markup.\
  **Example**:

```php
BotAPI::editMessageText([
    'chat_id' => $chatId,
    'message_id' => $messageId,
    'text' => 'Updated message!',
    'parse_mode' => 'Markdown'
]);
```

### BotAPI::deleteMessage

**BotAPI::deleteMessage($params)**\
**Description**: Deletes a message from a Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID.
* `message_id` (int) – The message ID to delete.\
  **Example**:

```php
BotAPI::deleteMessage([
    'chat_id' => $chatId,
    'message_id' => $messageId
]);
```

### BotAPI::sendMessage

**BotAPI::sendMessage($params)**\
**Description**: Sends a text message to a specified Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID to send the message to.
* `text` (string) – The message text.
* `parse_mode` (string, optional) – Format of the message ("HTML" or "Markdown").
* `reply_markup` (array, optional) – Inline or custom keyboard markup.\
  **Example**:

```php
BotAPI::sendMessage([
    'chat_id' => $chatId,
    'text' => 'Hello <b>World</b>!',
    'parse_mode' => 'HTML'
]);
```

### BotAPI::forwardMessage

**BotAPI::forwardMessage($params)**\
**Description**: Forwards a message from one chat to another.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID to forward the message to.
* `from_chat_id` (int|string) – The chat ID of the original message.
* `message_id` (int) – The message ID to forward.\
  **Example**:

```php
BotAPI::forwardMessage([
    'chat_id' => $chatId,
    'from_chat_id' => $fromChatId,
    'message_id' => $messageId
]);
```

### BotAPI::copyMessage

**BotAPI::copyMessage($params)**\
**Description**: Copies a message to another chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID to copy the message to.
* `from_chat_id` (int|string) – The chat ID of the original message.
* `message_id` (int) – The message ID to copy.
* `caption` (string, optional) – New caption for the copied message.
* `parse_mode` (string, optional) – Format of the caption ("HTML" or "Markdown").\
  **Example**:

```php
BotAPI::copyMessage([
    'chat_id' => $chatId,
    'from_chat_id' => $fromChatId,
    'message_id' => $messageId,
    'caption' => 'Copied message'
]);
```

### BotAPI::sendAnimation

**BotAPI::sendAnimation($params)**\
**Description**: Sends an animation (GIF) to a specified Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID to send the animation to.
* `animation` (string) – URL or file path of the animation.
* `caption` (string, optional) – Animation caption.
* `parse_mode` (string, optional) – Format of the caption ("HTML" or "Markdown").
* `reply_markup` (array, optional) – Inline or custom keyboard markup.\
  **Example**:

```php
BotAPI::sendAnimation([
    'chat_id' => $chatId,
    'animation' => 'https://example.com/animation.gif',
    'caption' => 'Funny GIF!'
]);
```

### BotAPI::setChatPermissions

**BotAPI::setChatPermissions($params)**\
**Description**: Sets default permissions for a Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID.
* `permissions` (array) – Permissions to set (e.g., can\_send\_messages, can\_send\_media).\
  **Example**:

```php
BotAPI::setChatPermissions([
    'chat_id' => $chatId,
    'permissions' => ['can_send_messages' => true, 'can_send_media' => false]
]);
```

### BotAPI::exportChatInviteLink

**BotAPI::exportChatInviteLink($params)**\
**Description**: Generates a new invite link for a Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID.\
  **Example**:

```php
BotAPI::exportChatInviteLink(['chat_id' => $chatId]);
```

### BotAPI::createChatInviteLink

**BotAPI::createChatInviteLink($params)**\
**Description**: Creates a custom invite link for a Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID.
* `name` (string, optional) – Name of the invite link.
* `expire_date` (int, optional) – Unix timestamp for link expiration.
* `member_limit` (int, optional) – Maximum number of users that can join.\
  **Example**:

```php
BotAPI::createChatInviteLink([
    'chat_id' => $chatId,
    'name' => 'VIP Link',
    'member_limit' => 100
]);
```

### BotAPI::editChatInviteLink

**BotAPI::editChatInviteLink($params)**\
**Description**: Edits an existing invite link for a Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID.
* `invite_link` (string) – The invite link to edit.
* `name` (string, optional) – New name for the invite link.
* `expire_date` (int, optional) – New expiration timestamp.\
  **Example**:

```php
BotAPI::editChatInviteLink([
    'chat_id' => $chatId,
    'invite_link' => 'https://t.me/joinchat/xxxx',
    'name' => 'Updated Link'
]);
```

### BotAPI::revokeChatInviteLink

**BotAPI::revokeChatInviteLink($params)**\
**Description**: Revokes an invite link for a Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID.
* `invite_link` (string) – The invite link to revoke.\
  **Example**:

```php
BotAPI::revokeChatInviteLink([
    'chat_id' => $chatId,
    'invite_link' => 'https://t.me/joinchat/xxxx'
]);
```

### BotAPI::approveChatJoinRequest

**BotAPI::approveChatJoinRequest($params)**\
**Description**: Approves a chat join request.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID.
* `user_id` (int) – The user ID to approve.\
  **Example**:

```php
BotAPI::approveChatJoinRequest([
    'chat_id' => $chatId,
    'user_id' => $userId
]);
```

### BotAPI::declineChatJoinRequest

**BotAPI::declineChatJoinRequest($params)**\
**Description**: Declines a chat join request.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID.
* `user_id` (int) – The user ID to decline.\
  **Example**:

```php
BotAPI::declineChatJoinRequest([
    'chat_id' => $chatId,
    'user_id' => $userId
]);
```

### BotAPI::setChatPhoto

**BotAPI::setChatPhoto($params)**\
**Description**: Sets a profile photo for a Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID.
* `photo` (string) – URL or file path of the photo.\
  **Example**:

```php
BotAPI::setChatPhoto([
    'chat_id' => $chatId,
    'photo' => 'https://example.com/chatphoto.jpg'
]);
```

### BotAPI::deleteChatPhoto

**BotAPI::deleteChatPhoto($params)**\
**Description**: Deletes a Telegram chat’s profile photo.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID.\
  **Example**:

```php
BotAPI::deleteChatPhoto(['chat_id' => $chatId]);
```

### BotAPI::setChatTitle

**BotAPI::setChatTitle($params)**\
**Description**: Changes the title of a Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID.
* `title` (string) – New title for the chat.\
  **Example**:

```php
BotAPI::setChatTitle([
    'chat_id' => $chatId,
    'title' => 'New Group Name'
]);
```

### BotAPI::setChatDescription

**BotAPI::setChatDescription($params)**\
**Description**: Changes the description of a Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID.
* `description` (string) – New description for the chat.\
  **Example**:

```php
BotAPI::setChatDescription([
    'chat_id' => $chatId,
    'description' => 'Welcome to our community!'
]);
```

### BotAPI::pinChatMessage

**BotAPI::pinChatMessage($params)**\
**Description**: Pins a message in a Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID.
* `message_id` (int) – The message ID to pin.
* `disable_notification` (bool, optional) – Disable notification for the pinned message.\
  **Example**:

```php
BotAPI::pinChatMessage([
    'chat_id' => $chatId,
    'message_id' => $messageId
]);
```

### BotAPI::unpinChatMessage

**BotAPI::unpinChatMessage($params)**\
**Description**: Unpins a specific pinned message in a Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID.
* `message_id` (int) – The message ID to unpin.\
  **Example**:

```php
BotAPI::unpinChatMessage([
    'chat_id' => $chatId,
    'message_id' => $messageId
]);
```

### BotAPI::unpinAllChatMessages

**BotAPI::unpinAllChatMessages($params)**\
**Description**: Unpins all pinned messages in a Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID.\
  **Example**:

```php
BotAPI::unpinAllChatMessages(['chat_id' => $chatId]);
```

### BotAPI::leaveChat

**BotAPI::leaveChat($params)**\
**Description**: Makes the bot leave a Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID.\
  **Example**:

```php
BotAPI::leaveChat(['chat_id' => $chatId]);
```

### BotAPI::answerInlineQuery

**BotAPI::answerInlineQuery($params)**\
**Description**: Responds to an inline query with results.\
**Parameters**:

* `inline_query_id` (string) – The inline query ID.
* `results` (array) – Array of results to send.
* `cache_time` (int, optional) – Cache duration for the results.\
  **Example**:

```php
BotAPI::answerInlineQuery([
    'inline_query_id' => $queryId,
    'results' => [['type' => 'article', 'id' => '1', 'title' => 'Result']]
]);
```

### BotAPI::setMyCommands

**BotAPI::setMyCommands($params)**\
**Description**: Sets the bot’s command list.\
**Parameters**:

* `commands` (array) – Array of bot commands.
* `scope` (array, optional) – Scope of users for the commands.
* `language_code` (string, optional) – Language code for the commands.\
  **Example**:

```php
BotAPI::setMyCommands([
    'commands' => [['command' => '/start', 'description' => 'Start the bot']]
]);
```

### BotAPI::deleteMyCommands

**BotAPI::deleteMyCommands($params)**\
**Description**: Deletes the bot’s command list.\
**Parameters**:

* `scope` (array, optional) – Scope of users for the commands.
* `language_code` (string, optional) – Language code for the commands.\
  **Example**:

```php
BotAPI::deleteMyCommands([]);
```

### BotAPI::getMyCommands

**BotAPI::getMyCommands($params)**\
**Description**: Retrieves the bot’s current command list.\
**Parameters**:

* `scope` (array, optional) – Scope of users for the commands.
* `language_code` (string, optional) – Language code for the commands.\
  **Example**:

```php
BotAPI::getMyCommands([]);
```

### BotAPI::editMessageCaption

**BotAPI::editMessageCaption($params)**\
**Description**: Edits the caption of a previously sent message.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID.
* `message_id` (int) – The message ID to edit.
* `caption` (string) – New caption text.
* `parse_mode` (string, optional) – Format of the caption ("HTML" or "Markdown").
* `reply_markup` (array, optional) – Inline or custom keyboard markup.\
  **Example**:

```php
BotAPI::editMessageCaption([
    'chat_id' => $chatId,
    'message_id' => $messageId,
    'caption' => 'Updated caption!',
    'parse_mode' => 'HTML'
]);
```

### BotAPI::editMessageMedia

**BotAPI::editMessageMedia($params)**\
**Description**: Edits the media content of a previously sent message.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID.
* `message_id` (int) – The message ID to edit.
* `media` (array) – New media object (photo, video, etc.).
* `reply_markup` (array, optional) – Inline or custom keyboard markup.\
  **Example**:

```php
BotAPI::editMessageMedia([
    'chat_id' => $chatId,
    'message_id' => $messageId,
    'media' => ['type' => 'photo', 'media' => 'https://example.com/newphoto.jpg']
]);
```

### BotAPI::editMessageReplyMarkup

**BotAPI::editMessageReplyMarkup($params)**\
**Description**: Edits the reply markup of a previously sent message.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID.
* `message_id` (int) – The message ID to edit.
* `reply_markup` (array, optional) – New inline or custom keyboard markup.\
  **Example**:

```php
BotAPI::editMessageReplyMarkup([
    'chat_id' => $chatId,
    'message_id' => $messageId,
    'reply_markup' => ['inline_keyboard' => [[['text' => 'New Button', 'callback_data' => 'data']]]]
]);
```

### BotAPI::sendInvoice

**BotAPI::sendInvoice($params)**\
**Description**: Sends an invoice for payment.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID.
* `title` (string) – Product title.
* `description` (string) – Product description.
* `payload` (string) – Bot-defined invoice payload.
* `provider_token` (string) – Payment provider token.
* `currency` (string) – Currency code (e.g., USD).
* `prices` (array) – Array of price components.\
  **Example**:

```php
BotAPI::sendInvoice([
    'chat_id' => $chatId,
    'title' => 'Product',
    'description' => 'A cool product',
    'payload' => 'payload123',
    'provider_token' => 'token',
    'currency' => 'USD',
    'prices' => [['label' => 'Item', 'amount' => 1000]]
]);
```

### BotAPI::answerShippingQuery

**BotAPI::answerShippingQuery($params)**\
**Description**: Responds to a shipping query.\
**Parameters**:

* `shipping_query_id` (string) – The shipping query ID.
* `ok` (bool) – Whether the shipping is available.
* `shipping_options` (array, optional) – Available shipping options.
* `error_message` (string, optional) – Error message if not available.\
  **Example**:

```php
BotAPI::answerShippingQuery([
    'shipping_query_id' => $queryId,
    'ok' => true,
    'shipping_options' => [['id' => '1', 'title' => 'Standard', 'prices' => [['label' => 'Shipping', 'amount' => 500]]]]
]);
```

### BotAPI::answerPreCheckoutQuery

**BotAPI::answerPreCheckoutQuery($params)**\
**Description**: Responds to a pre-checkout query.\
**Parameters**:

* `pre_checkout_query_id` (string) – The pre-checkout query ID.
* `ok` (bool) – Whether the checkout is approved.
* `error_message` (string, optional) – Error message if not approved.\
  **Example**:

```php
BotAPI::answerPreCheckoutQuery([
    'pre_checkout_query_id' => $queryId,
    'ok' => true
]);
```

### BotAPI::sendGame

**BotAPI::sendGame($params)**\
**Description**: Sends a game to a Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID.
* `game_short_name` (string) – Short name of the game.
* `reply_markup` (array, optional) – Inline or custom keyboard markup.\
  **Example**:

```php
BotAPI::sendGame([
    'chat_id' => $chatId,
    'game_short_name' => 'MyGame'
]);
```

### BotAPI::setGameScore

**BotAPI::setGameScore($params)**\
**Description**: Sets a user’s score in a game.\
**Parameters**:

* `user_id` (int) – The user ID.
* `score` (int) – The score to set.
* `chat_id` (int|string, optional) – The Telegram chat ID.
* `message_id` (int, optional) – The message ID of the game.\
  **Example**:

```php
BotAPI::setGameScore([
    'user_id' => $userId,
    'score' => 100,
    'chat_id' => $chatId,
    'message_id' => $messageId
]);
```

### BotAPI::getGameHighScores

**BotAPI::getGameHighScores($params)**\
**Description**: Retrieves high scores for a game.\
**Parameters**:

* `user_id` (int) – The user ID.
* `chat_id` (int|string, optional) – The Telegram chat ID.
* `message_id` (int, optional) – The message ID of the game.\
  **Example**:

```php
BotAPI::getGameHighScores([
    'user_id' => $userId,
    'chat_id' => $chatId,
    'message_id' => $messageId
]);
```

### BotAPI::setWebhook

**BotAPI::setWebhook($params)**\
**Description**: Sets a webhook for receiving Telegram updates.\
**Parameters**:

* `url` (string) – HTTPS URL to send updates to.
* `certificate` (string, optional) – Public key certificate.
* `max_connections` (int, optional) – Maximum allowed connections.
* `allowed_updates` (array, optional) – Types of updates to receive.\
  **Example**:

```php
BotAPI::setWebhook([
    'url' => 'https://example.com/webhook',
    'allowed_updates' => ['message', 'callback_query']
]);
```

### BotAPI::deleteWebhook

**BotAPI::deleteWebhook($params)**\
**Description**: Deletes the webhook, reverting to polling.\
**Parameters**:

* `drop_pending_updates` (bool, optional) – Drop all pending updates.\
  **Example**:

```php
BotAPI::deleteWebhook(['drop_pending_updates' => true]);
```

### BotAPI::getWebhookInfo

**BotAPI::getWebhookInfo($params)**\
**Description**: Retrieves information about the current webhook.\
**Parameters**: None\
**Example**:

```php
BotAPI::getWebhookInfo([]);
```

### BotAPI::getUpdates

**BotAPI::getUpdates($params)**\
**Description**: Retrieves updates via polling.\
**Parameters**:

* `offset` (int, optional) – Identifier of the first update to retrieve.
* `limit` (int, optional) – Number of updates to retrieve.
* `timeout` (int, optional) – Timeout in seconds for long polling.
* `allowed_updates` (array, optional) – Types of updates to receive.\
  **Example**:

```php
BotAPI::getUpdates([
    'offset' => $offset,
    'limit' => 100,
    'timeout' => 30
]);
```

### BotAPI::getMe

**BotAPI::getMe($params)**\
**Description**: Retrieves information about the bot itself.\
**Parameters**: None\
**Example**:

```php
BotAPI::getMe([]);
```

### BotAPI::logOut

**BotAPI::logOut($params)**\
**Description**: Logs out the bot from the cloud Bot API server.\
**Parameters**: None\
**Example**:

```php
BotAPI::logOut([]);
```

### BotAPI::close

**BotAPI::close($params)**\
**Description**: Closes the bot instance.\
**Parameters**: None\
**Example**:

```php
BotAPI::close([]);
```

### BotAPI::getChatAdministrators

**BotAPI::getChatAdministrators($params)**\
**Description**: Retrieves a list of administrators in a Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID.\
  **Example**:

```php
BotAPI::getChatAdministrators(['chat_id' => $chatId]);
```

### BotAPI::getChatMember

**BotAPI::getChatMember($params)**\
**Description**: Retrieves information about a specific chat member.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID.
* `user_id` (int) – The user ID.\
  **Example**:

```php
BotAPI::getChatMember([
    'chat_id' => $chatId,
    'user_id' => $userId
]);
```

### BotAPI::getChatMembersCount

**BotAPI::getChatMembersCount($params)**\
**Description**: Retrieves the number of members in a Telegram chat.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID.\
  **Example**:

```php
BotAPI::getChatMembersCount(['chat_id' => $chatId]);
```

### BotAPI::setChatStickerSet

**BotAPI::setChatStickerSet($params)**\
**Description**: Sets a sticker set for a supergroup.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID.
* `sticker_set_name` (string) – Name of the sticker set.\
  **Example**:

```php
BotAPI::setChatStickerSet([
    'chat_id' => $chatId,
    'sticker_set_name' => 'MyStickerSet'
]);
```

### BotAPI::deleteChatStickerSet

**BotAPI::deleteChatStickerSet($params)**\
**Description**: Deletes a chat’s sticker set.\
**Parameters**:

* `chat_id` (int|string) – The Telegram chat ID.\
  **Example**:

```php
BotAPI::deleteChatStickerSet(['chat_id' => $chatId]);
```

### BotAPI::createNewStickerSet

**BotAPI::createNewStickerSet($params)**\
**Description**: Creates a new sticker set.\
**Parameters**:

* `user_id` (int) – The user ID of the sticker set creator.
* `name` (string) – Name of the sticker set.
* `title` (string) – Title of the sticker set.
* `stickers` (array) – Array of stickers to include.\
  **Example**:

```php
BotAPI::createNewStickerSet([
    'user_id' => $userId,
    'name' => 'MyStickerSet',
    'title' => 'My Stickers',
    'stickers' => [['sticker' => 'https://example.com/sticker.png', 'emoji' => '😊']]
]);
```

### BotAPI::addStickerToSet

**BotAPI::addStickerToSet($params)**\
**Description**: Adds a sticker to an existing sticker set.\
**Parameters**:

* `user_id` (int) – The user ID of the sticker set owner.
* `name` (string) – Name of the sticker set.
* `sticker` (array) – Sticker to add.\
  **Example**:

```php
BotAPI::addStickerToSet([
    'user_id' => $userId,
    'name' => 'MyStickerSet',
    'sticker' => ['sticker' => 'https://example.com/sticker.png', 'emoji' => '😊']
]);
```

### BotAPI::setStickerPositionInSet

**BotAPI::setStickerPositionInSet($params)**\
**Description**: Changes a sticker’s position in a sticker set.\
**Parameters**:

* `sticker` (string) – File ID of the sticker.
* `position` (int) – New position in the set.\
  **Example**:

```php
BotAPI::setStickerPositionInSet([
    'sticker' => 'file_id',
    'position' => 1
]);
```

### BotAPI::deleteStickerFromSet

**BotAPI::deleteStickerFromSet($params)**\
**Description**: Deletes a sticker from a sticker set.\
**Parameters**:

* `sticker` (string) – File ID of the sticker.\
  **Example**:

```php
BotAPI::deleteStickerFromSet(['sticker' => 'file_id']);
```

### BotAPI::setStickerSetThumb

**BotAPI::setStickerSetThumb($params)**\
**Description**: Sets a thumbnail for a sticker set.\
**Parameters**:

* `name` (string) – Name of the sticker set.
* `user_id` (int) – The user ID of the sticker set owner.
* `thumb` (string) – URL or file path of the thumbnail.\
  **Example**:

```php
BotAPI::setStickerSetThumb([
    'name' => 'MyStickerSet',
    'user_id' => $userId,
    'thumb' => 'https://example.com/thumb.png'
]);
```
