Skip to content

Webhooks overview

Status Stable · Last verified 2026-07-11 · API v10 · Sources Webhook resource, Support: Intro to Webhooks

A webhook is the simplest way to get a message into a Discord channel. It is a special URL bound to one channel; anything that can send an HTTP POST can make a message appear — no bot, no login, no gateway, no intents.

The word is overloaded. Keep these straight:

Term Direction What it means In this atlas
Incoming webhook You → Discord A URL Discord gives you; you POST JSON to it to send messages into a channel. The main topic here.
“Outgoing” / interaction webhook Discord → You Discord POSTs data to your server (e.g. interaction requests to your endpoint). Covered under Interactions.

When people say “the DISCORD_WEBHOOK_URL”, they almost always mean an incoming webhook. That’s what the Get a webhook URL guide produces.

Can:

  • Send messages to its channel, with up to 10 embeds, files, and (with the right flag) components.
  • Override the displayed username and avatar per message.
  • Post into a specific thread (?thread_id=), or create a thread in a forum channel.
  • Be executed by anyone who holds the URL — which is exactly why the URL is a secret.

Cannot:

  • Read messages, receive events, or respond to interactions (it is post-only).
  • Mention @everyone/roles unless the payload’s allowed_mentions permits it.
  • Act as a full bot — for that you need an app + bot.

Use a webhook when your need is “push a message into this channel”:

  • CI/CD build results, deploy notifications, uptime/monitoring alerts.
  • Cron jobs, ETL summaries, form submissions, RSS/news relays.
  • Cross-posting from another system (GitHub, error trackers, dashboards).

Reach for a bot or interaction endpoint instead when you must read messages, react to events, or respond to user input.

The API distinguishes three webhook types:

  1. Incoming (type 1) — the classic URL you POST to. This is what you make.
  2. Channel Follower (type 2) — created when a channel “follows” an Announcement channel; internal to that feature, you don’t execute it directly.
  3. Application (type 3) — associated with interactions/apps (used for follow-up messages), not a general-purpose incoming URL.