Returns: Message

class aiogram.methods.send_photo.SendPhoto(*, chat_id: int | str, photo: InputFile | str, message_thread_id: int | None = None, caption: str | None = None, parse_mode: str | None = sentinel.UNSET_PARSE_MODE, caption_entities: List[MessageEntity] | None = None, has_spoiler: bool | None = None, disable_notification: bool | None = None, protect_content: bool | None = sentinel.UNSET_PROTECT_CONTENT, reply_to_message_id: int | None = None, allow_sending_without_reply: bool | None = None, reply_markup: InlineKeyboardMarkup | ReplyKeyboardMarkup | ReplyKeyboardRemove | ForceReply | None = None, **extra_data: Any)[source]#

Use this method to send photos. On success, the sent aiogram.types.message.Message is returned.


chat_id: int | str#

Unique identifier for the target chat or username of the target channel (in the format @channelusername)

photo: InputFile | str#

Photo to send. Pass a file_id as String to send a photo that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a photo from the Internet, or upload a new photo using multipart/form-data. The photo must be at most 10 MB in size. The photo’s width and height must not exceed 10000 in total. Width and height ratio must be at most 20. More information on Sending Files »

message_thread_id: int | None#

Unique identifier for the target message thread (topic) of the forum; for forum supergroups only

caption: str | None#

Photo caption (may also be used when resending photos by file_id), 0-1024 characters after entities parsing

parse_mode: str | None#

Mode for parsing entities in the photo caption. See formatting options for more details.

caption_entities: List[MessageEntity] | None#

A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode

has_spoiler: bool | None#

Pass True if the photo needs to be covered with a spoiler animation

disable_notification: bool | None#

Sends the message silently. Users will receive a notification with no sound.

protect_content: bool | None#

Protects the contents of the sent message from forwarding and saving

reply_to_message_id: int | None#

If the message is a reply, ID of the original message

allow_sending_without_reply: bool | None#

Pass True if the message should be sent even if the specified replied-to message is not found

reply_markup: InlineKeyboardMarkup | ReplyKeyboardMarkup | ReplyKeyboardRemove | ForceReply | None#

Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user.


As bot method#

result: Message = await bot.send_photo(...)

Method as object#


  • from aiogram.methods.send_photo import SendPhoto

  • alias: from aiogram.methods import SendPhoto

With specific bot#

result: Message = await bot(SendPhoto(...))

As reply into Webhook in handler#

return SendPhoto(...)

As shortcut from received object#