/api/v1/guilds/:guildId/notifications
Authentication: API key or JWT Bearer token required. Admin permission required.
Limit: Maximum 20 webhook endpoints per guild.
Webhook events
The following event types can be subscribed to:| Event | Description |
|---|---|
bot.disconnected | Discord gateway disconnection |
bot.reconnected | Successful reconnection |
bot.error | Unhandled bot error |
moderation.action | Warning, ban, or kick issued |
health.degraded | Memory >80% or event loop lag >100ms |
config.changed | Config updated via dashboard |
member.flagged | AI flagged a member’s message |
GET /guilds/:guildId/notifications/webhooks
Returns all configured outbound webhook endpoints. Secrets are never included in the response. AhasSecret boolean indicates whether a signing secret is configured.
Path parameters
The Discord guild ID.
Response
An array of webhook endpoint objects.UUID of the endpoint.
The HTTPS delivery URL.
List of subscribed event type strings.
Whether the endpoint is active.
true if an HMAC signing secret is configured. The secret itself is never returned.Example
POST /guilds/:guildId/notifications/webhooks
Registers a new outbound webhook endpoint.Path parameters
The Discord guild ID.
Request body
HTTPS delivery URL. Must start with
https://. Private IP addresses and localhost are rejected (SSRF protection).Non-empty array of event type strings to subscribe to. See event types table above.
Optional HMAC-SHA256 signing secret. When set, each delivery includes an
X-Webhook-Signature header you can use to verify authenticity.Whether the endpoint is active immediately.
Response
Returns the created endpoint object (secret masked withhasSecret). HTTP 201 on success.
Example
Error responses
| Status | Cause |
|---|---|
400 | Missing or invalid url; url is not HTTPS; SSRF-blocked URL; invalid event types; events is empty; already at 20 endpoint limit |
401 | Missing authentication |
DELETE /guilds/:guildId/notifications/webhooks/:endpointId
Removes a webhook endpoint by its ID.Path parameters
The Discord guild ID.
UUID of the endpoint to remove.
Response
HTTP 204 No Content on success.Example
POST /guilds/:guildId/notifications/webhooks/:endpointId/test
Sends a test event payload to a webhook endpoint and returns the delivery result.Path parameters
The Discord guild ID.
UUID of the endpoint to test.
Response
Whether the delivery was successful (HTTP 2xx).
HTTP status code returned by the endpoint.
First 500 characters of the response body.
Example
GET /guilds/:guildId/notifications/deliveries
Returns recent webhook delivery log entries for the guild, newest first.Path parameters
The Discord guild ID.
Query parameters
Maximum entries to return. Maximum
100.