Module Contents

class airflow.contrib.hooks.discord_webhook_hook.DiscordWebhookHook(http_conn_id=None, webhook_endpoint=None, message='', username=None, avatar_url=None, tts=False, proxy=None, *args, **kwargs)[source]

Bases: airflow.hooks.http_hook.HttpHook

This hook allows you to post messages to Discord using incoming webhooks. Takes a Discord connection ID with a default relative webhook endpoint. The default endpoint can be overridden using the webhook_endpoint parameter (

Each Discord webhook can be pre-configured to use a specific username and avatar_url. You can override these defaults in this hook.

  • http_conn_id (str) – Http connection ID with host as “” and default webhook endpoint in the extra field in the form of {“webhook_endpoint”: “webhooks/{}/{webhook.token}”}

  • webhook_endpoint (str) – Discord webhook endpoint in the form of “webhooks/{}/{webhook.token}”

  • message (str) – The message you want to send to your Discord channel (max 2000 characters)

  • username (str) – Override the default username of the webhook

  • avatar_url (str) – Override the default avatar of the webhook

  • tts (bool) – Is a text-to-speech message

  • proxy (str) – Proxy to use to make the Discord webhook call

_get_webhook_endpoint(self, http_conn_id, webhook_endpoint)[source]

Given a Discord http_conn_id, return the default webhook endpoint or override if a webhook_endpoint is manually supplied.

  • http_conn_id – The provided connection ID

  • webhook_endpoint – The manually provided webhook endpoint


Webhook endpoint (str) to use


Construct the Discord JSON payload. All relevant parameters are combined here to a valid Discord JSON payload.


Discord payload (str) to send


Execute the Discord webhook call

Was this entry helpful?