Returns: bool

class aiogram.methods.set_webhook.SetWebhook(*, url: str, certificate: InputFile | None = None, ip_address: str | None = None, max_connections: int | None = None, allowed_updates: List[str] | None = None, drop_pending_updates: bool | None = None, secret_token: str | None = None, **extra_data: Any)[source]#

Use this method to specify a URL and receive incoming updates via an outgoing webhook. Whenever there is an update for the bot, we will send an HTTPS POST request to the specified URL, containing a JSON-serialized aiogram.types.update.Update. In case of an unsuccessful request, we will give up after a reasonable amount of attempts. Returns True on success. If you’d like to make sure that the webhook was set by you, you can specify secret data in the parameter secret_token. If specified, the request will contain a header ‘X-Telegram-Bot-Api-Secret-Token’ with the secret token as content.


1. You will not be able to receive updates using aiogram.methods.get_updates.GetUpdates for as long as an outgoing webhook is set up.

2. To use a self-signed certificate, you need to upload your public key certificate using certificate parameter. Please upload as InputFile, sending a String will not work.

3. Ports currently supported for webhooks: 443, 80, 88, 8443. If you’re having any trouble setting up webhooks, please check out this amazing guide to webhooks.


url: str#

HTTPS URL to send updates to. Use an empty string to remove webhook integration

certificate: InputFile | None#

Upload your public key certificate so that the root certificate in use can be checked. See our self-signed guide for details.

ip_address: str | None#

The fixed IP address which will be used to send webhook requests instead of the IP address resolved through DNS

max_connections: int | None#

The maximum allowed number of simultaneous HTTPS connections to the webhook for update delivery, 1-100. Defaults to 40. Use lower values to limit the load on your bot’s server, and higher values to increase your bot’s throughput.

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_post_init(_ModelMetaclass__context: Any) None#

We need to both initialize private attributes and call the user-defined model_post_init method.

allowed_updates: List[str] | None#

A JSON-serialized list of the update types you want your bot to receive. For example, specify ["message", "edited_channel_post", "callback_query"] to only receive updates of these types. See aiogram.types.update.Update for a complete list of available update types. Specify an empty list to receive all update types except chat_member, message_reaction, and message_reaction_count (default). If not specified, the previous setting will be used.

drop_pending_updates: bool | None#

Pass True to drop all pending updates

secret_token: str | None#

A secret token to be sent in a header ‘X-Telegram-Bot-Api-Secret-Token’ in every webhook request, 1-256 characters. Only characters A-Z, a-z, 0-9, _ and - are allowed. The header is useful to ensure that the request comes from a webhook set by you.


As bot method#

result: bool = await bot.set_webhook(...)

Method as object#


  • from aiogram.methods.set_webhook import SetWebhook

  • alias: from aiogram.methods import SetWebhook

With specific bot#

result: bool = await bot(SetWebhook(...))

As reply into Webhook in handler#

return SetWebhook(...)