Webhooks: posting to Discord without a bot at all

Discord Bots Reviewed September 6, 2026 2 min read

A webhook is a URL that posts a message into one channel. No bot, no token, no hosting, no intents. If all you need is «something happened, tell Discord», this is the answer and it takes two minutes.

Webhook or bot?

You want toUse
Post an alert when a build finishesA webhook
Relay server events into a channelA webhook
Respond to a slash commandA bot
React to what people sayA bot, with intents
Post as several different names and avatarsA webhook — this is something bots cannot do easily
Manage roles or moderateA bot

What to do

  1. Create it in the channel settings

    Integrations → Webhooks → New Webhook. Name it and choose the channel. That is the whole setup.

  2. Copy the URL

    This is the credential. Anyone with it can post to that channel as that webhook, which is the next point.

  3. Send it a JSON message

    A POST with a content field, or an embeds array. Every language can do this in three lines, and most tools that need to notify something already support webhook URLs directly.

  4. Set the name and avatar per message if you want

    A webhook can post under a different name each time. That is how relay bridges show the original author's name on each message.

The URL is a secret, and it does not expire

Anyone who has it can post anything into that channel, indefinitely, with any name and avatar. Do not commit it to a public repository and do not paste it in a channel. If one leaks, delete the webhook in the channel settings — that invalidates the URL immediately, and creating a new one takes seconds.

Webhooks have their own rate limits

They are stricter than a bot's, and a script that posts in a loop will hit them. If you are sending more than a message every few seconds, either batch the content into one message or you have outgrown webhooks and want a bot.

How to confirm it worked

Post to the URL from the command line or a small script and see the message appear in the channel with the name you set.