Webhooks
The Webhooks API allows super users to manage outbound Slack webhook endpoints that SD Elements can use for event delivery in future epics.
NOTE: This API requires the following feature flag to be enabled: Webhooks.
List Webhooks
This endpoint retrieves a paginated list of Webhook resources for the authenticated user's organization.
NOTE: This endpoint requires the following feature flag to be enabled: Webhooks.
GET /api/v2/webhooks/
Query parameters
Pagination uses the standard API v2 parameters:
| Parameter | Description |
|---|---|
page |
Page number (optional). |
page_size |
Items per page (optional; maximum 100 for this endpoint). |
The response includes count, next, previous, and results. Resource-specific filters (for example by name or active) are not applied by this endpoint in the current release.
GET /api/v2/webhooks/ HTTP/1.1
Accept: application/json
Authorization: Token "YOUR SDE ACCESS TOKEN"
HTTP/1.1 200 OK
Content-Type: application/json
{
"count": 1,
"next": null,
"previous": null,
"results": [{
"id": 1,
"name": "Engineering Slack Webhook",
"url": "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX",
"description": "Posts project events to #eng-webhooks",
"integration_type": "slack",
"active": true,
"created": "2025-03-31T10:15:00.000Z",
"updated": "2025-03-31T10:15:00.000Z"
}]
}
Retrieve a Webhook
Retrieve a single Webhook resource by its ID.
NOTE: This endpoint requires the following feature flag to be enabled: Webhooks.
GET /api/v2/webhooks/{id}/
| Path Parameter | Description |
|---|---|
| id | Integer ID of the webhook to retrieve. |
GET /api/v2/webhooks/1/ HTTP/1.1
Accept: application/json
Authorization: Token "YOUR SDE ACCESS TOKEN"
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": 1,
"name": "Engineering Slack Webhook",
"url": "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX",
"description": "Posts project events to #eng-webhooks",
"integration_type": "slack",
"active": true,
"created": "2025-03-31T10:15:00.000Z",
"updated": "2025-03-31T10:15:00.000Z"
}
Create a Webhook
Create a new Webhook resource for the authenticated user's organization.
NOTE: This endpoint requires the following feature flag to be enabled: Webhooks.
POST /api/v2/webhooks/
| Fields | Required | Description |
|---|---|---|
| name | Yes | Human-readable name for this webhook. Maximum 140 characters. |
| url | Yes | The Slack webhook URL. Must use https and match hooks.slack.com/services/... or hooks.slack-gov.com/services/.... |
| description | No | Optional description for this webhook. Maximum 1024 characters. |
| active | No | Whether this webhook is active. Defaults to true. |
The field integration_type is read-only in API responses (currently always slack). It cannot be set in the request body.
POST /api/v2/webhooks/ HTTP/1.1
Accept: application/json
Authorization: Token "YOUR SDE ACCESS TOKEN"
{
"name": "Engineering Slack Webhook",
"url": "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX",
"description": "Posts project events to #eng-webhooks",
"active": true
}
HTTP/1.1 201 CREATED
Content-Type: application/json
{
"id": 1,
"name": "Engineering Slack Webhook",
"url": "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX",
"description": "Posts project events to #eng-webhooks",
"integration_type": "slack",
"active": true,
"created": "2025-03-31T10:15:00.000Z",
"updated": "2025-03-31T10:15:00.000Z"
}
Update a Webhook
Update an existing Webhook resource using a partial update (PATCH). Full replacement via PUT is not supported.
NOTE: This endpoint requires the following feature flag to be enabled: Webhooks.
PATCH /api/v2/webhooks/{id}/
| Path Parameter | Description |
|---|---|
| id | Integer ID of the webhook to update. |
| Fields | Required | Description |
|---|---|---|
| name | No | Human-readable name for this webhook. Maximum 140 characters. |
| url | No | The Slack webhook URL. Must use https and match hooks.slack.com/services/... or hooks.slack-gov.com/services/.... |
| description | No | Optional description for this webhook. Maximum 1024 characters. |
| active | No | Whether this webhook is active. |
The field integration_type is read-only and cannot be changed via this API.
PATCH /api/v2/webhooks/1/ HTTP/1.1
Accept: application/json
Authorization: Token "YOUR SDE ACCESS TOKEN"
{
"name": "Engineering Slack Webhook (updated)",
"url": "https://hooks.slack.com/services/T00000000/B00000000/YYYYYYYYYYYYYYYYYYYYYYYY",
"description": "Updated description",
"active": true
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": 1,
"name": "Engineering Slack Webhook (updated)",
"url": "https://hooks.slack.com/services/T00000000/B00000000/YYYYYYYYYYYYYYYYYYYYYYYY",
"description": "Updated description",
"integration_type": "slack",
"active": true,
"created": "2025-03-31T10:15:00.000Z",
"updated": "2025-03-31T11:00:00.000Z"
}
Delete a Webhook
Delete an existing Webhook resource.
NOTE: This endpoint requires the following feature flag to be enabled: Webhooks.
DELETE /api/v2/webhooks/{id}/
| Path Parameter | Description |
|---|---|
| id | Integer ID of the webhook to delete. |
DELETE /api/v2/webhooks/1/ HTTP/1.1
Accept: application/json
Authorization: Token "YOUR SDE ACCESS TOKEN"
HTTP/1.1 204 NO CONTENT