Webhooks
List, inspect and delete the Discord webhooks of any project, with an admin session.
Discord webhook creation and management, authenticated with a project API key
List a project's webhooks (admin session)
/api/admin/projects/{projectId}/webhooksReturns the webhooks owned by any project, in the same shape as the project-facing list. Channel and server names are resolved from the bot cache and may be null. Tokens are never returned.
Authentication: Admin session token (Authorization: Bearer <token>)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
projectId | path | string | yes | Project ID |
serverId | query | string | no | Filter by Discord server ID |
limit | query | number | no | Max number of webhooks (1-100) Default: 50. |
offset | query | number | no | Pagination offset Default: 0. |
Responses
| Status | Description | Body |
|---|---|---|
200 | The project's webhooks. | WebhookListResponseDto |
400 | Invalid project ID or query parameters. | |
401 | Authentication required. | |
403 | System Admin access required. |
Open in Swagger (opens in a new tab)
Get webhook details (admin session)
/api/admin/webhooks/{webhookId}Returns a webhook owned by any project. The webhook URL and token are never returned.
Authentication: Admin session token (Authorization: Bearer <token>)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
webhookId | path | string | yes | Webhook ID |
Responses
| Status | Description | Body |
|---|---|---|
200 | Webhook details. | WebhookDetailResponseDto |
401 | Authentication required. | |
403 | System Admin access required. | |
404 | Webhook not found. |
Open in Swagger (opens in a new tab)
Delete a webhook (admin session)
/api/admin/webhooks/{webhookId}Deletes a webhook owned by any project, on Discord and then in storage. If Discord refuses, the stored webhook is kept.
Authentication: Admin session token (Authorization: Bearer <token>)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
webhookId | path | string | yes | Webhook ID |
Responses
| Status | Description | Body |
|---|---|---|
204 | Webhook deleted. | |
401 | Authentication required. | |
403 | System Admin access required. | |
404 | Webhook not found. | |
502 | Discord API error. |
Open in Swagger (opens in a new tab)
Schemas
WebhookDetailResponseDto schema
| Field | Type | Required | Description |
|---|---|---|---|
avatar | string or null | yes | Discord avatar hash |
channelId | string | yes | Discord channel ID |
channelName | string or null | yes | Channel name from the bot cache |
createdAt | string | yes | ISO 8601 creation timestamp |
id | string | yes | Webhook ID |
lastUsedAt | string or null | yes | ISO 8601 timestamp of the last execution |
name | string | yes | Webhook name |
serverId | string | yes | Discord server ID |
serverName | string or null | yes | Server name from the bot cache |
usageCount | number | yes | Number of executions |
WebhookListResponseDto schema
| Field | Type | Required | Description |
|---|---|---|---|
limit | number | yes | Applied limit |
offset | number | yes | Applied offset |
total | number | yes | Total webhooks matching the filter |
webhooks | array of WebhookSummaryDto | yes |
WebhookSummaryDto schema
| Field | Type | Required | Description |
|---|---|---|---|
channelId | string | yes | Discord channel ID |
channelName | string or null | yes | Channel name from the bot cache |
createdAt | string | yes | ISO 8601 creation timestamp |
id | string | yes | Webhook ID |
lastUsedAt | string or null | yes | ISO 8601 timestamp of the last execution |
name | string | yes | Webhook name |
serverId | string | yes | Discord server ID |
serverName | string or null | yes | Server name from the bot cache |
usageCount | number | yes | Number of executions |
Source: apps/api/openapi.json.