Any server

Discord Webhook Builder

Webhook payloads are simple JSON that is nonetheless easy to get subtly wrong, and Discord's error for a malformed one tells you very little. Build it against a preview, then send it from your own machine.

Optional. Leave blank to use the webhook’s own name.

Shown above the embed. This is the part that can mention people.

Fields

Roughly how it lands

Server is back online

Scheduled restart complete. Everything is running normally.

Players

12 / 100

spawnly.net

The payload

{
  "username": "Server Status",
  "embeds": [
    {
      "color": 5763719,
      "title": "Server is back online",
      "description": "Scheduled restart complete. Everything is running normally.",
      "footer": {
        "text": "spawnly.net"
      },
      "fields": [
        {
          "name": "Players",
          "value": "12 / 100",
          "inline": true
        }
      ],
      "timestamp": "2026-01-01T00:00:00.000Z"
    }
  ]
}

Send it from your own machine

The webhook URL is a credential — anyone holding it can post to that channel. It stays in your environment and never comes near this page.

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": "spawnly.net"
      },
      "fields": [
        {
          "name": "Players",
          "value": "12 / 100",
          "inline": true
        }
      ],
      "timestamp": "2026-01-01T00:00:00.000Z"
    }
  ]
}' \
  "$DISCORD_WEBHOOK_URL"

How this works

A webhook message is either plain content, an embed, or both — Discord rejects a payload with neither. The embed is where the structure is: a colour as a decimal integer rather than a hex string, an optional title and description, and up to ten fields that can sit inline beside each other or on their own lines. The builder emits the payload and a curl command that reads the webhook URL from your environment.

What people get wrong

This page will not send anything, and that is deliberate. A form that accepts a webhook URL and posts to it is an anonymous relay for posting into other people's Discord servers, which is a spam tool with a friendly interface. The generated curl reads the URL from an environment variable for the same reason it matters on your side: a webhook URL is a credential, and anyone who has it can post to that channel until you rotate it.

Support & Help