Any server
Discord Webhook Builder
A webhook payload is plain JSON, yet it is easy to get slightly wrong, and Discord's error for a bad one tells you almost nothing. Build it against a live preview, then send it from your own computer.
Optional — blank keeps the name set on the webhook.
Appears above the embed, and is the only part that can @mention anyone.
Fields
Roughly how it lands
Server is back online
Scheduled restart complete. Everything is running normally.
Players
12 / 100
spawnbench.com
The payload
{
"username": "Server Status",
"embeds": [
{
"color": 5763719,
"title": "Server is back online",
"description": "Scheduled restart complete. Everything is running normally.",
"footer": {
"text": "spawnbench.com"
},
"fields": [
{
"name": "Players",
"value": "12 / 100",
"inline": true
}
],
"timestamp": "2026-01-01T00:00:00.000Z"
}
]
}Send it from your own machine
Treat the webhook URL like a password: anyone who has it can post in that channel. It lives in your environment and is never sent to this site.
curl -H "Content-Type: application/json" \
-d '{
"username": "Server Status",
"embeds": [
{
"color": 5763719,
"title": "Server is back online",
"description": "Scheduled restart complete. Everything is running normally.",
"footer": {
"text": "spawnbench.com"
},
"fields": [
{
"name": "Players",
"value": "12 / 100",
"inline": true
}
],
"timestamp": "2026-01-01T00:00:00.000Z"
}
]
}' \
"$DISCORD_WEBHOOK_URL"Advertisement
How it works
Discord needs at least one of two things in a webhook message: plain content or an embed (both is fine; neither is rejected). Embeds are where the structure is. Colours go in as decimal integers, not hex strings; title and description are optional; and there can be up to ten fields, each either inline alongside its neighbours or on a line of its own. You get the finished payload and a curl command that reads the webhook URL from an environment variable.
Advertisement
Common mistakes
This page deliberately never sends anything. A form that accepted a webhook URL and posted to it would be an anonymous relay into strangers' Discord servers — a spam tool dressed up as a utility. The curl command keeps the URL in an environment variable for a reason that matters on your end too: the webhook URL is effectively a password, and anyone holding it can post in that channel until you generate a new one.