Erstelle einen Discord-Webhook, bau den JSON-Payload (content, username, avatar_url, embeds) mit Zeichenlimits in Echtzeit und kopiere fertigen Code für curl, JavaScript und Python.
Ein Discord-Webhook ist eine geheime URL, die an einen Kanal gebunden ist. Sende per POST einen JSON-Body mit content (bis zu 2000 Zeichen), embeds (bis zu 10) oder beidem, und die Nachricht erscheint in diesem Kanal unter dem Namen des Webhooks. Es braucht weder Bot noch Login, und genau deshalb kann jeder posten, der die URL hat.
Die Felder von Execute Webhook, die du am häufigsten nutzt
Feld
Typ
Hinweise
Nachrichtentext, bis zu 2000 Zeichen
Überschreibt den Namen des Webhooks für diese Nachricht
Überschreibt den Avatar des Webhooks für diese Nachricht
Bis zu 10 Rich-Embed-Objekte
Begrenzt, welche @Erwähnungen tatsächlich benachrichtigen
thread_id (Query)
Postet in einen Thread im Kanal
wait (Query)
true gibt statt 204 die erstellte Nachricht zurück
Webhooks sind der schnellste Weg, Warnungen, Formulareingänge oder Deploy-Hinweise in einen Discord-Kanal zu schicken. Der Builder unten schreibt das JSON für dich, zählt beim Tippen die Zeichen gegen die Limits von Discord und macht aus dem Ergebnis curl, JavaScript und Python, die du in ein Skript oder auf einen Server kopieren kannst. Er sendet selbst nichts, deine Webhook-URL verlässt deinen Rechner also nie.
Erstelle in den Einstellungen deines Discord-Servers einen Webhook für den Kanal, in den du posten willst.
Wähle den Kanal, lege Name und Avatar fest und kopiere dann die Webhook-URL.
Fülle den Builder unten aus und kopiere den erzeugten Code.
Führe ihn in einem Terminal oder auf deinem Server aus, mit der URL in einer Umgebungsvariable.
Behandle die URL wie ein Passwort. Bewahre sie in einer Umgebungsvariable auf und halte sie aus Frontend-Code und öffentlichen Repositories heraus.
Ist eine URL geleakt, lösch diesen Webhook in den Servereinstellungen und erstelle einen neuen; die alte URL funktioniert dann nicht mehr.
Setze allowed_mentions auf { "parse": [] }, wenn der Inhalt Nutzereingaben enthält, damit niemand @everyone auslösen kann.
Hänge ?wait=true an, wenn du die Nachrichten-ID zurückbrauchst, zum Beispiel um die Nachricht später zu bearbeiten oder zu löschen.
Die Embed-Farbe ist eine Dezimalzahl, die Hex-Farbe 4F98FB wird also als 5216507 gesendet.
Häufige Fragen
Wie bekomme ich eine Discord-Webhook-URL?
Du brauchst die Berechtigung Webhooks verwalten auf dem Server oder im Kanal. Erstelle in den Einstellungen deines Discord-Servers einen Webhook für den Kanal und kopiere seine URL.
Warum gibt mein Webhook 400 Bad Request zurück?
Meist ist der Body leer oder ungültig. Du musst mindestens eines von content, embeds, components, einer Datei oder einer Umfrage senden, und content darf höchstens 2000 Zeichen lang sein. Sende außerdem den Header Content-Type: application/json, sonst wird der Body nicht als JSON gelesen.
Kann ich einen Discord-Webhook aus dem Browser aufrufen?
Lass es. Jede Seite, die das tut, legt die URL jedem Besucher offen, der dann beliebige Inhalte in deinen Kanal posten kann. Sende von einem Server, einer Serverless-Funktion oder einem Skript aus und lass deine Seite stattdessen diese aufrufen.
Welche Limits gelten für Embeds?
Discord dokumentiert einen Titel von bis zu 256 Zeichen, Feldwerte von bis zu 1024 Zeichen und insgesamt 6000 Zeichen über Titel, Beschreibung, Feldnamen und Werte, Footer-Text und Autorname in allen Embeds einer Nachricht.
Kann ein Webhook Nachrichten lesen oder Nutzern antworten?
Nein. Ein Webhook kann nur posten (und seine eigenen Nachrichten bearbeiten oder löschen). Kanäle lesen, auf Befehle reagieren oder Menschen antworten erfordert eine Bot-Anwendung.
Was die URL enthält
Eine Webhook-URL endet mit zwei Teilen: der Webhook-ID und ihrem Token. Das Token ist der einzige Berechtigungsnachweis, weshalb die Discord-Dokumentation darauf hinweist, dass das Ausführen eines Webhooks keine weitere Authentifizierung braucht. Wer die vollständige URL hat, hat dieselbe Macht wie du.
Content, Embeds oder beides
Reiner content eignet sich für kurze Warnungen und unterstützt das Markdown von Discord. Embeds geben dir eine farbige Seitenleiste, einen verlinkten Titel, in Spalten angeordnete Felder und einen Footer, was sich für strukturierte Daten wie eine Bestellung oder einen Fehlerbericht besser liest.
Du kannst beides in einem Aufruf senden. Der content erscheint über den Embeds, und allowed_mentions entscheidet, ob darin genannte Namen tatsächlich jemanden benachrichtigen.
Senden in großen Mengen
Wenn du zu schnell sendest, antwortet Discord mit Status 429 und einem JSON-Wert retry_after in Sekunden. Halte dich daran und stelle Nachrichten in eine Warteschlange, statt in einer engen Schleife neu zu versuchen. Mehrere Ereignisse in einer Nachricht mit mehreren Embeds zu bündeln senkt ebenfalls die Zahl der Aufrufe.
Fertige Requests
curl: eine einfache Nachricht
Die URL wird aus einer Umgebungsvariable gelesen, damit sie nie in deiner Shell-History oder einem Commit landet.
Node.js: ein Embed mit Feldern
Nutzt das eingebaute fetch in Node 18 und neuer. wait=true lässt Discord die Nachricht zurückgeben, damit du ihre ID protokollieren kannst.
Python mit requests
json= setzt den Content-Type-Header für dich. Status 204 bedeutet, dass die Nachricht gepostet wurde.
Payload-Builder für Discord-Webhooks
Tippe deine Nachricht und dein Embed, behalte die Zeichenzahlen im Blick und kopiere JSON oder Code. Von dieser Seite wird nichts gesendet.
Nachrichteninhalt
Benutzername überschreiben
Avatar-URL überschreiben
Embed hinzufügen
Embed-Titel
Embed-Beschreibung
Embed-Farbe
Footer-Text
Alle Erwähnungen blockieren (allowed_mentions parse: [])