2017-07-23 17:44:01 +02:00
---
title: messages.sendMedia
description: messages.sendMedia parameters, return type and example
---
## Method: messages.sendMedia
[Back to methods index ](index.md )
### Parameters:
| Name | Type | Required |
2017-08-20 11:05:56 +02:00
|----------|---------------|----------|
2017-07-23 17:44:01 +02:00
|silent|[Bool](../types/Bool.md) | Optional|
|background|[Bool](../types/Bool.md) | Optional|
|clear\_draft|[Bool](../types/Bool.md) | Optional|
|peer|[InputPeer](../types/InputPeer.md) | Yes|
|reply\_to\_msg\_id|[int](../types/int.md) | Optional|
|media|[InputMedia](../types/InputMedia.md) | Yes|
|reply\_markup|[ReplyMarkup](../types/ReplyMarkup.md) | Optional|
### Return type: [Updates](../types/Updates.md)
2017-08-28 12:44:50 +02:00
### Can bots use this method: **YES**
### Errors this method can return:
| Error | Description |
|----------|---------------|
|FILE_PARTS_INVALID|The number of file parts is invalid||MEDIA_CAPTION_TOO_LONG|The caption is too long||MEDIA_EMPTY|The provided media object is invalid||PEER_ID_INVALID|The provided peer id is invalid||PHOTO_EXT_INVALID|The extension of the photo is invalid||STORAGE_CHECK_FAILED|Server storage check failed||WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
2017-07-23 17:44:01 +02:00
### Example:
```
$MadelineProto = new \danog\MadelineProto\API();
if (isset($token)) { // Login as a bot
$MadelineProto->bot_login($token);
}
if (isset($number)) { // Login as a user
$sentCode = $MadelineProto->phone_login($number);
echo 'Enter the code you received: ';
$code = '';
for ($x = 0; $x < $sentCode['type']['length']; $x++) {
$code .= fgetc(STDIN);
}
$MadelineProto->complete_phone_login($code);
}
$Updates = $MadelineProto->messages->sendMedia(['silent' => Bool, 'background' => Bool, 'clear_draft' => Bool, 'peer' => InputPeer, 'reply_to_msg_id' => int, 'media' => InputMedia, 'reply_markup' => ReplyMarkup, ]);
```
2017-07-24 01:32:29 +02:00
Or, if you're using the [PWRTelegram HTTP API ](https://pwrtelegram.xyz ):
2017-07-23 17:44:01 +02:00
### As a bot:
POST/GET to `https://api.pwrtelegram.xyz/botTOKEN/madeline`
Parameters:
* method - messages.sendMedia
* params - `{"silent": Bool, "background": Bool, "clear_draft": Bool, "peer": InputPeer, "reply_to_msg_id": int, "media": InputMedia, "reply_markup": ReplyMarkup, }`
### As a user:
POST/GET to `https://api.pwrtelegram.xyz/userTOKEN/messages.sendMedia`
Parameters:
silent - Json encoded Bool
2017-08-20 19:09:52 +02:00
2017-07-23 17:44:01 +02:00
background - Json encoded Bool
2017-08-20 19:09:52 +02:00
2017-07-23 17:44:01 +02:00
clear_draft - Json encoded Bool
2017-08-20 19:09:52 +02:00
2017-07-23 17:44:01 +02:00
peer - Json encoded InputPeer
2017-08-20 19:09:52 +02:00
2017-07-23 17:44:01 +02:00
reply_to_msg_id - Json encoded int
2017-08-20 19:09:52 +02:00
2017-07-23 17:44:01 +02:00
media - Json encoded InputMedia
2017-08-20 19:09:52 +02:00
2017-07-23 17:44:01 +02:00
reply_markup - Json encoded ReplyMarkup
2017-08-20 19:09:52 +02:00
2017-07-23 17:44:01 +02:00
Or, if you're into Lua:
```
Updates = messages.sendMedia({silent=Bool, background=Bool, clear_draft=Bool, peer=InputPeer, reply_to_msg_id=int, media=InputMedia, reply_markup=ReplyMarkup, })
```
## Usage of reply_markup
You can provide bot API reply_markup objects here.