Discord Webhook Alerts: Set One Up for Website Changes

A Discord webhook is a URL that posts into one channel with no bot and no login. Making one takes a minute. Most of the problems come afterwards.

Discord webhook alerts work by giving a monitoring tool a URL that posts straight into one channel of your server. Discord's own developer docs say webhooks "do not require a bot user or authentication to use". To make one, open Server Settings, go to Integrations, click Create Webhook, pick the channel, then Copy Webhook URL and paste it into the tool. That part takes a minute. What makes alerts go missing later is rate limits, a deleted webhook, a message that is too long, and a URL that has leaked.

  • A webhook posts to one channel. Different alerts in different channels means one webhook per channel.
  • One message can carry up to 2,000 characters of text and up to 10 embeds, with 6,000 characters across all embeds.
  • When Discord rate limits a sender it answers 429 with a retry_after value, and says limits "should not be hard coded".
  • An IP making 10,000 invalid requests in 10 minutes is temporarily restricted, and a webhook that answers 404 should never be used again.
  • The URL is the password. Discord lets anyone holding it post, edit or delete the webhook without logging in.

What is a Discord webhook?

Discord's help article on webhooks describes them as a way to get "automated messages and data updates sent to a text channel in your server". Under the hood it is one address. The webhook reference shows the call a tool makes: a POST to /webhooks/{id}/{token}, where the id and token are the two long strings at the end of the URL you copied.

That suits website monitoring well. A monitor notices a page change, a price drop or a restock, and sends one message. Nobody has to run a bot, keep it online or give it permissions across the server.

How do you create a Discord webhook?

  1. Open Server Settings, then Integrations

    You need to be on the server the alerts should go to. Creating a webhook through Discord's API requires the Manage Webhooks permission, so if the option is missing, that permission is the likely reason.

  2. Click Create Webhook

    That creates the webhook, and the options for it open.

  3. Choose the channel it posts to

    Pick an ordinary text channel. If the webhook's channel is a forum or media channel, Discord requires every message to name a thread, so a tool that does not send one cannot post there.

  4. Give it a name and, if you like, an avatar

    Discord suggests naming webhooks so you can tell several apart. A tool can still override the name and avatar on each message.

  5. Click Copy Webhook URL

    Treat what you copied like a password. The section below says why.

  6. Paste it into your monitoring tool and send a test

    A test message proves the channel, the permissions and the URL in one go, before a real alert depends on it.

How much can one webhook message carry?

More than an alert needs, but the limits are hard ones. Discord's message reference says a message that goes over them is refused with a Bad Request, so an over-long product description can lose you the whole alert, not just the end of it.

Discord's published limits for a webhook message, read on 14 September 2026
Part of the messageLimit
Plain text (content)2,000 characters
Embeds per messageUp to 10
Embed title256 characters
Embed description4,096 characters
Fields per embedUp to 25
Field name / field value256 / 1,024 characters
Footer text2,048 characters
All embed text in one message, combined6,000 characters

An embed is the boxed card with a title, fields and an image, and it is the right shape for a stock alert: product name as the title, price and stock as fields, the link on the title. The combined 6,000 characters counts the title, description, field names, field values, footer and author name across every embed in the message.

What is the Discord webhook rate limit?

Discord does not publish one fixed number for a webhook, and says so. Its rate limits page states that "rate limits should not be hard coded into your app", and that an app should read the response headers instead. What it does publish:

  • A global limit of 50 requests per second, which applies to the IP address when no authorisation header is sent. A webhook call does not need one.
  • Per-route limits on top of that, reported in the X-RateLimit headers on each response.
  • Going over any of them returns HTTP 429 with a retry_after field, and Discord says to wait that long before retrying.
  • A separate ceiling on invalid requests: 10,000 per 10 minutes, where a 401, 403 or 429 counts as invalid. Discord works that out as "a sustained 16 to 17 requests per second". Past it, the IP is temporarily restricted.

Say a shop starts a sale and 200 prices drop inside a minute. That is about three alerts a second, well under the global limit, but a tool that fires all 200 at the same instant is likely to hit a per-route limit and get a run of 429s. If it retries each one straight away, every retry is another invalid request. A well-behaved sender queues the messages for each webhook, sends them one after another, and waits out retry_after when Discord asks. On a shared service one badly behaved sender can get the IP restricted for every customer on it.

Why did my Discord webhook alerts stop?

What Discord's documentation says about each failure
What you seeLikely causeWhat to do
Nothing arrives, and the tool logs a 404The webhook was deleted, or its URL was mistypedCreate a new webhook. Discord says a webhook that returns 404 should not be used again
Some alerts arrive, some do not, 429 in the logsRate limited during a burstThe sender should wait for retry_after. If it is your own script, add a queue
One particular alert never arrives, 400 in the logsThe message broke a length limitShorten the description or split the fields
Nothing arrives from a forum channel webhookNo thread givenPoint the webhook at a normal text channel
Messages you did not send appear in the channelThe URL has leakedDelete the webhook and make a new one

Is a Discord webhook URL secret?

Yes. The webhook reference lists versions of get, modify and delete that take the token from the URL, and says each one "does not require authentication". So anyone who has the URL can post into your channel, rename the webhook, or delete it. Do not paste it into a public repository, a screenshot or a support forum. If it has been exposed, delete it in Server Settings and create a new one, then update the tool.

How do StockWatch alerts use Discord?

You paste the webhook URL into Settings and hit test, as the notifications help article shows. Each alert, whether it is a restock, a price drop, a new product or a page changing, arrives as one embed from a sender named StockWatch. A monitor can also tag @everyone when it fires. To send different products to different channels, give each channel its own webhook and use keyword routing.

Sends are queued per webhook and wait out Discord's retry time on a 429, so a sale that drops hundreds of prices arrives as a steady run of messages instead of a wall of refusals. If you are deciding what to watch in the first place, watching a page for a specific word covers the setup, and why restock alerts arrive too late explains why Discord beats email when seconds count.

Do I need a Discord bot to get website alerts?

No. Discord's developer docs say webhooks do not require a bot user or authentication. A monitoring tool only needs the webhook URL.

Can one webhook post to more than one channel?

No. You choose one channel when you create it. For alerts in several channels, create a webhook in each and route alerts to the right one.

How many messages can a Discord webhook send?

Discord does not publish a fixed per-webhook number and says limits should not be hard coded. It publishes a global limit of 50 requests per second and answers 429 with a retry_after value when a sender goes over.

Why is my Discord webhook returning 404?

The webhook no longer exists, usually because someone deleted it, or the URL was copied wrongly. Discord says not to keep using a webhook that returns 404, because repeated attempts lead to a temporary restriction. Create a new one.

How long can a Discord webhook message be?

2,000 characters of plain text, plus up to 10 embeds holding no more than 6,000 characters between them. An embed description can be up to 4,096 characters.

Send website change alerts to your Discord server Five pages free, checked every 60 seconds, alerts to Discord, email or Telegram.