Requête exemple
Réponse exemple
POST/v1/notifications/test/discordEnvoie un embed de test à une URL de webhook Discord et renvoie le résultat de la livraison.Cet endpoint permet de valider une URL de webhook Discord avant de l'utiliser comme canal de notification dans votre espace de travail. Il envoie un message embed formaté (titre, description, couleur violette #7c3aed, pied de page et horodatage) directement à l'URL fournie, sous l'identité Coffrify. L'appel agit comme un proxy : Coffrify exécute lui-même la requête POST vers Discord, mesure la durée et vous retourne le statut HTTP renvoyé par Discord, ainsi qu'un aperçu du corps de réponse. La requête vers Discord est soumise à un délai d'expiration de 10 secondes (AbortSignal.timeout).
Comportement notable : si la requête vers Discord échoue (réseau, timeout), l'endpoint ne renvoie pas une erreur HTTP. Il renvoie un statut 200 avec `ok: false` et le détail de l'erreur dans le champ error. Vous devez donc inspecter le champ ok de la réponse, et non uniquement le code HTTP de l'appel API.
Authentification
Cet endpoint requiert une clé API valide disposant du scope notifications:manage. À noter : ce scope n'a pas d'alias plus large dans la table des scopes ; seul un token le possédant explicitement (ou le wildcard *, ou notifications:*) sera accepté. Une authentification par session du tableau de bord (cookie) confère le scope * et satisfait donc cette exigence.
Corps de la requête
Le corps doit être un objet JSON. Seul le champ url est obligatoire.
| Champ | Type | Requis | Description |
|---|---|---|---|
| url | string | Oui | L'URL du webhook Discord à tester. Doit correspondre au motif https://discord.com/api/webhooks/.... Les sous-domaines canary. et ptb. ainsi que l'ancien domaine discordapp.com sont également acceptés. La valeur est nettoyée des espaces (trim). |
| message | string | Non | Texte affiché comme titre de l'embed. S'il est absent ou vide, la valeur par défaut ✅ Test from Coffrify est utilisée. |
Réponse
La réponse est un objet décrivant le résultat de la tentative de livraison. Le champ channel vaut toujours "discord". Le champ status contient le code HTTP renvoyé par Discord (par exemple 204 en cas de succès, 0 si la requête n'a pas pu aboutir). Le champ ok est true uniquement si status est compris entre 200 et 299. duration_ms indique la durée de l'aller-retour vers Discord en millisecondes. body_preview contient les 500 premiers caractères du corps de réponse de Discord. error est null en cas de succès, ou contient le message d'erreur si la requête a échoué.
| Champ | Type | Description |
|---|---|---|
| channel | string | Toujours "discord". |
| status | number | Code HTTP renvoyé par Discord. 0 si la requête n'a pas abouti. |
| ok | boolean | true si status est entre 200 et 299. |
| duration_ms | number | Durée de l'appel vers Discord, en millisecondes. |
| body_preview | string | Les 500 premiers caractères du corps de réponse de Discord (souvent vide en cas de succès 204). |
| error | string | null | Message d'erreur si la livraison a échoué (réseau, timeout), sinon null. |
Erreurs
| Code | Quand | Résolution |
|---|---|---|
| 400 validation_error | Le champ url est absent, vide ou ne correspond pas à un webhook Discord (https://discord.com/api/webhooks/...). | Fournissez une URL de webhook Discord valide, copiée depuis les paramètres d'intégration de votre serveur Discord. |
| 401 missing_api_key | Aucun en-tête Authorization et aucune session valide. | Ajoutez l'en-tête Authorization: Bearer cof_live_.... |
| 401 invalid_api_key | Le préfixe de la clé est invalide ou la clé est introuvable. | Vérifiez la clé ou générez-en une nouvelle sur app.coffrify.com/developer. |
| 403 scope_missing | Le token ne possède pas le scope notifications:manage. | Générez une clé API incluant le scope notifications:manage. |
| 429 rate_limited | Quota de requêtes de l'espace de travail dépassé (endpoint de type write). | Respectez l'en-tête Retry-After avant de réessayer. |
Voir aussi
- POST /v1/notifications/test/slack — tester un webhook Slack de la même manière.
POST /v1/notifications/test/webhook— tester un endpoint webhook HTTP générique.- Endpoints de gestion des canaux de notification (scope
notifications:manage).