Webhooks overview
Status
Stable· Last verified 2026-07-11 · APIv10· 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.
Two things called “webhook”
Section titled “Two things called “webhook””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.
What a webhook can and cannot do
Section titled “What a webhook can and cannot do”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’sallowed_mentionspermits it. - Act as a full bot — for that you need an app + bot.
When to use a webhook
Section titled “When to use a webhook”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.
Types of webhook
Section titled “Types of webhook”The API distinguishes three webhook types:
- Incoming (
type 1) — the classic URL youPOSTto. This is what you make. - Channel Follower (
type 2) — created when a channel “follows” an Announcement channel; internal to that feature, you don’t execute it directly. - Application (
type 3) — associated with interactions/apps (used for follow-up messages), not a general-purpose incoming URL.
- Get a webhook URL — the step-by-step.
- Send messages — payload shape, embeds, files, threads, rate limits, and the gotchas.