glossary

Créer un webhook Discord pour publier des messages automatiquement

Taras Shynkarenko
Taras Shynkarenko
•Updated: •8 lecture min.
Créer un webhook Discord pour publier des messages automatiquementCréer un webhook Discord pour publier des messages automatiquement

TL;DR

8 lecture min.

Un webhook Discord est une URL, sous la forme `https://discord.com/api/webhooks/{id}/{token}`, qui permet à un service externe de publier un message dans un canal en envoyant un payload JSON, sans aucune connexion bot. La documentation développeurs de Discord elle-même indique que l'appel ne nécessite pas d'authentification séparée, car l'id et le token présents dans l'URL constituent eux-mêmes l'identifiant, ce qui explique pourquoi cette URL doit être traitée comme un secret. La limite globale de l'API de Discord est de 50 requêtes par seconde et par application, selon la documentation de Discord elle-même.

Qu'est-ce qu'un webhook Discord ?

Un webhook Discord est une URL propre à un canal qui permet à un service externe de publier un message dans ce canal en envoyant une requête HTTP, sans se connecter en tant que bot ni en tant qu'utilisateur. La documentation développeurs de Discord elle-même décrit l'endpoint comme POST /webhooks/{webhook.id}/{webhook.token} et affirme sans détour que "this call does not require authentication" (cet appel ne nécessite pas d'authentification), car l'id et le token du webhook intégrés dans l'URL constituent eux-mêmes l'identifiant. Ce seul fait explique l'essentiel de ce qu'une équipe doit savoir pour la mise en place : créer le webhook est une étape unique et soumise à permission dans Discord, tandis que l'utiliser ensuite se résume à envoyer du JSON à une URL.

Comment créer un webhook Discord dans les paramètres du canal ?

Un membre du serveur disposant de la permission Manage Webhooks crée un webhook Discord depuis les paramètres propres d'un canal, dans l'onglet Intégrations, en choisissant New Webhook puis en copiant l'URL que Discord génère pour lui. La même action est accessible via l'API de Discord sous la forme POST /channels/{channel.id}/webhooks, pour laquelle la documentation de Discord indique que la permission Manage Webhooks sur ce canal est également requise. Nommez le webhook et, si besoin, donnez-lui un avatar avant de copier l'URL, car quiconque possède cette URL peut ensuite publier dans le canal.

Un développeur tape sur un ordinateur portable en construisant le payload JSON d'un appel webhook.

À quoi ressemble le payload JSON d'un webhook Discord ?

Le payload JSON d'un webhook Discord est le corps de la requête envoyée à l'URL du webhook, et il doit inclure au minimum l'un des éléments content, embeds, poll ou une pièce jointe, car la documentation de Discord elle-même le liste comme condition pour l'appel d'exécution du webhook. Le champ content transporte du texte de message brut jusqu'à 2000 caractères, tandis que username et avatar_url remplacent le nom et l'image par défaut du webhook pour ce seul message, et embeds transporte jusqu'à 10 objets d'embed richement formatés en un seul appel. Le mécanisme est un corps JSON POST classique : un service construit cet objet, l'envoie à l'URL du webhook via HTTPS, et Discord publie le résultat dans le canal où le webhook a été créé.

{
  "content": "Deployment finished",
  "username": "Release Bot",
  "avatar_url": "https://example.com/bot-avatar.png",
  "embeds": []
}
ChampTypeRemarques
contentstringTexte du message, jusqu'à 2000 caractères
usernamestringRemplace le nom par défaut du webhook pour ce message
avatar_urlstringRemplace l'avatar par défaut du webhook pour ce message
ttsbooleanEnvoie le message en synthèse vocale
embedsarrayJusqu'à 10 objets d'embed par requête
allowed_mentionsobjectContrôle quelles mentions du message notifient réellement les personnes

Quelles limites de débit s'appliquent à un webhook Discord ?

Discord applique une limite globale de 50 requêtes par seconde et par application sur l'ensemble de son API, selon la documentation développeurs de Discord elle-même, et la route propre d'un webhook porte une limite séparée et plus étroite que Discord communique via des en-têtes de réponse plutôt que par un seul chiffre publié. Chaque réponse inclut les en-têtes X-RateLimit-Limit, X-RateLimit-Remaining et X-RateLimit-Reset, et la documentation de Discord demande à un client de lire ces en-têtes plutôt que de coder une limite en dur, puisque les limites par route sont "subject to change" (susceptibles de changer). Un service qui envoie de nombreux messages en rafale doit vérifier l'en-tête des requêtes restantes après chaque appel et faire une pause dès qu'il atteint zéro, plutôt que de supposer un nombre fixe d'appels par minute.

Un cadenas au-dessus d'un écran d'ordinateur portable, symbole du secret qu'exige une URL de webhook.

Pourquoi l'URL d'un webhook Discord est-elle un secret ?

L'URL d'un webhook Discord est un secret parce que l'id et le token qu'elle contient constituent l'intégralité de l'identifiant que l'endpoint vérifie, et la documentation de Discord elle-même confirme que l'appel d'exécution du webhook ne nécessite aucune authentification supplémentaire au-delà de ce que l'URL porte déjà. Quiconque détient cette URL peut publier n'importe quel message dans ce canal, sous le nom du webhook, sans jamais s'authentifier en tant qu'utilisateur Discord ni en tant que bot. Stockez l'URL comme on stocke une clé d'API, par exemple dans une variable d'environnement ou un gestionnaire de secrets, et ne la committez jamais dans un dépôt de code public ni ne la collez dans un script côté client.

Comment un message atteint un canal via un webhook Discord
Un membre du serveur crée un webhook dans les paramètres Intégrations d'un canal
Discord renvoie une URL contenant l'id et le token du webhook
Un service externe envoie un payload JSON à cette URL via HTTPS
Discord publie le message dans le canal, sans connexion bot requise
Sourcé depuis la documentation développeurs de Discord elle-même sur la ressource webhook et les limites de débit de l'API, vérifié le 9 September 2026.

Un webhook Discord peut-il recevoir des messages, pas seulement en envoyer ?

Un webhook Discord standard ne fait qu'envoyer des messages dans un canal ; il ne peut pas lire les messages que d'autres personnes y publient, puisque l'endpoint d'exécution du webhook est une cible POST à sens unique, sans accès en lecture correspondant. Une équipe qui veut réagir à ce qui se passe à l'intérieur d'un serveur Discord, de la même façon que les limites de débit de l'API Reddit régissent une intégration bidirectionnelle avec Reddit, a plutôt besoin d'un bot Discord doté de son propre token et des permissions de gateway pertinentes. C'est une configuration différente de celle d'un webhook, plus proche de la façon dont la tarification de l'API Twitter conditionne l'accès bidirectionnel aux données propres de X, et cela relève du côté collecte de données sur les réseaux sociaux d'un projet plutôt que du côté alerting ; la documentation développeurs de Discord, dans le style d'un guide de démarrage, est la prochaine étape logique pour une équipe qui construit un bot complet.

Webhook ou bot : lequel choisir ?
Webhook Discord
  • Publie des messages dans un canal
  • Pas de connexion bot, pas d'authentification séparée
  • Ne peut pas lire les messages des autres
Bot Discord
  • Lit les messages et répond aux commandes
  • A besoin de son propre token et de permissions gateway
  • Peut agir sur de nombreux canaux et serveurs
Un webhook ne fait qu'envoyer des messages, un bot écoute aussi.

Questions fréquentes

Puis-je modifier ou supprimer un message déjà envoyé avec un webhook Discord ?

Oui. La réponse de l'appel d'exécution du webhook de Discord renvoie un message id lorsque la requête inclut ?wait=true, et cet id peut être utilisé avec des endpoints séparés de modification et de suppression rattachés au même webhook. Sans wait=true, l'appel initial ne renvoie pas l'objet message nécessaire pour une modification ultérieure.

Un webhook Discord expire-t-il ?

L'URL d'un webhook Discord n'expire pas d'elle-même ; elle reste valide jusqu'à ce qu'un administrateur du serveur supprime le webhook ou retire le canal auquel il appartient. Comme elle n'expire jamais d'elle-même, l'hypothèse la plus sûre est de traiter l'URL comme un secret permanent, pas comme un jeton temporaire.

Plusieurs services peuvent-ils utiliser la même URL de webhook Discord ?

Oui, techniquement un nombre illimité de services peut envoyer des requêtes à la même URL de webhook, puisque Discord ne distingue pas quel expéditeur a fait l'appel. En pratique, utiliser un webhook distinct par service ou par bot facilite le suivi des messages jusqu'à leur origine et permet de révoquer une intégration sans casser une autre.

Que se passe-t-il si j'envoie un payload plus grand que les limites de Discord ?

Discord rejette la requête avec une réponse d'erreur plutôt que de tronquer le contenu en silence, si bien qu'un payload de plus de 2000 caractères dans content ou de plus de 10 objets dans embeds fait échouer l'appel entièrement. Vérifier le code de statut de la réponse après chaque appel au webhook permet de repérer cela avant qu'un message n'arrive jamais, en silence.

Créer un webhook Discord nécessite-t-il spécifiquement le propriétaire du serveur ?

Non. Tout membre disposant de la permission Manage Webhooks sur un canal peut y créer un webhook, et cette permission peut être accordée à un rôle sans faire de ce rôle le propriétaire ou l'administrateur du serveur. L'API de Discord applique la même vérification de permission sur l'endpoint POST /channels/{channel.id}/webhooks utilisé pour en créer un par programmation.

Un webhook Discord est-il la même chose qu'un bot Discord ?

Non. Un webhook est une URL à sens unique pour publier des messages dans un seul canal sans connexion, tandis qu'un bot est une application complète avec son propre token, capable de lire des messages, de répondre à des commandes et d'agir sur de nombreux canaux et serveurs. Un projet qui doit seulement pousser des notifications dans un canal a besoin d'un webhook ; un projet qui doit écouter et répondre a besoin d'un bot.

Peut-on configurer un webhook Discord sans écrire de code ?

Le créer ne demande aucun code : un membre du serveur disposant de la permission Manage Webhooks ouvre l'onglet Integrations du canal, clique sur New Webhook et copie l'URL générée. Nommer le webhook ou lui donner un avatar reste facultatif à ce stade. Envoyer un message exige tout de même un moyen d'envoyer une requête POST en HTTPS avec un corps JSON, que ce soit un script, un outil d'automatisation ou un service qui parle déjà JSON.

RedReplier
RedReplier

Commencer

Reddit, X, Bluesky et HN

Alertes d'intention en temps réel

Réponses IA illimitées

Classé par intention d'achat

Comment savoir combien de requêtes il me reste avant d'atteindre la limite de débit de Discord ?

Discord ne publie pas de chiffre fixe pour la route propre d'un webhook ; chaque réponse contient plutôt les en-têtes X-RateLimit-Limit, X-RateLimit-Remaining et X-RateLimit-Reset. La documentation de Discord indique qu'un client doit lire ces en-têtes plutôt que coder une limite en dur, puisque les limites par route peuvent changer. Un service qui envoie beaucoup de messages d'un coup vérifie l'en-tête des requêtes restantes après chaque appel et fait une pause dès qu'il tombe à zéro.

Un message envoyé par webhook peut-il sembler venir de quelqu'un d'autre ?

Les champs username et avatar_url du payload JSON remplacent le nom et l'image par défaut du webhook, mais seulement pour ce message-là. Le nom et l'avatar configurés du webhook restent inchangés partout ailleurs. Cela permet à un même webhook de publier sous le nom "Release Bot" pour une alerte de déploiement, puis sous un autre nom la fois suivante, sans toucher à la configuration du webhook.

Qu'est-ce qui empêche quelqu'un d'autre de publier dans mon canal s'il récupère l'URL de mon webhook ?

Rien. L'id et le token du webhook contenus dans l'URL forment toute l'identifiant que Discord vérifie, donc quiconque possède cette URL peut publier n'importe quel message dans le canal sous le nom du webhook, sans jamais se connecter en tant qu'utilisateur ou bot. C'est pourquoi l'URL doit être traitée comme une clé API : la stocker dans une variable d'environnement ou un gestionnaire de secrets, et ne jamais la commiter dans un dépôt public ni la coller dans du code côté client.

Nous voir plus souvent sur Google

Un clic définit RedReplier comme source préférée. Nos articles remontent alors dans vos À la une, en mode IA et dans les aperçus IA.

Avant de partir...

RedReplier

RedReplier

Repérez chaque acheteur qui cherche ce que vous vendez

RedReplier surveille Reddit, X, Bluesky et Hacker News en temps réel, classe chaque sujet selon l'intention d'achat et rédige votre réponse, pour que vous arriviez en premier.

Reddit, X, Bluesky et HN

Alertes d'intention en temps réel

Réponses IA illimitées

Classé par intention d'achat

Articles connexes