---
title: Notification Service
summary: The Notification Service API allows you to programmatically create and manage notification integrations. Fastly will use these integrations to send you notifications and alerts related to the Fastly product. Mailing list, Microsoft Teams, New Relic, Slack, PagerDuty, and webhook are supported as integrations.
url: https://www.fastly.com/documentation/reference/api/observability/notifications
---

The Notification Service API allows you to programmatically create and manage notification integrations. Fastly will use these integrations to send you notifications and alerts related to the Fastly product.
Mailing list, Microsoft Teams, New Relic, Slack, PagerDuty, and webhook are supported as integrations.

## Data model

| Field | Type | Description |
|-------|------|-------------|
| `config` | object | Configuration specific to the integration <code>type</code>. |
| `description` | string | User submitted description of the integration. |
| `name` | string | User submitted name of the integration. |
| `type` | string | Type of the integration. |
| `created_at` | string | Date and time in ISO 8601 format. (Read-only) |
| `id` | string | An unique identifier for the integration. (Read-only) |
| `status` | string | The status for a mailing list integration. (Read-only) |
| `updated_at` | string | Date and time in ISO 8601 format. (Read-only) |

## Data model

| Field | Type | Description |
|-------|------|-------------|
| `address` | string | An email address. |

## Data model

| Field | Type | Description |
|-------|------|-------------|
| `webhook` | string | Microsoft teams webhook. |

## Data model

| Field | Type | Description |
|-------|------|-------------|
| `account` | string | New Relic Account. |
| `key` | string | New Relic Key. |

## Data model

| Field | Type | Description |
|-------|------|-------------|
| `key` | string | PagerDuty integration key. |

## Data model

| Field | Type | Description |
|-------|------|-------------|
| `webhook` | string | Slack webhook. |

## Data model

| Field | Type | Description |
|-------|------|-------------|
| `webhook` | string | Webhook URL. |

## API endpoints

### Get all integration types

**GET** `/notifications/integration-types`

Describe all handled integration types with additional metadata on how to create an integration of each type.

### Search for integrations

**GET** `/notifications/integrations`

Lists integrations matching the given query parameters.
If no query parameter is given, the query returns the first 10 integrations sorted by name in ascending order.

**Parameters:**

| Name | Type | In | Required | Description |
|------|------|----|---------|--------------|
| `cursor` | string | query | No | Cursor value from the <code>next_cursor</code> field of a previous response, used to retrieve the next page. To request the first page, this should be empty. |
| `limit` | integer | query | No | Limit how many results are returned. |
| `sort` | string | query | No | Sort the items by the given field. Allowed fields names are "name", "created_at" and "updated_at". Order is ascending by default, preprend the field with the minus sign <code>-</code> to use descending order. |
| `type` | string | query | No | Filter results based on their type. |

### Create an integration

**POST** `/notifications/integrations`

Create a new integration of the given type.

### Get integration

**GET** `/notifications/integrations/{integration_id}`

Retrieve an existing integration by using its id, if it exists.

**Parameters:**

| Name | Type | In | Required | Description |
|------|------|----|---------|--------------|
| `integration_id` | string | path | Yes | The ID of the integration. |

### Delete an integration

**DELETE** `/notifications/integrations/{integration_id}`

Delete an integration. The effect is immediate and does not require confirmation.

**Parameters:**

| Name | Type | In | Required | Description |
|------|------|----|---------|--------------|
| `integration_id` | string | path | Yes | The ID of the integration. |

### Update an integration

**PATCH** `/notifications/integrations/{integration_id}`

Update an existing integration, only updating the fields that are given and leaving the others untouched.
If the type is changed, then you must also fill out the specific fields required by the integration.

**Parameters:**

| Name | Type | In | Required | Description |
|------|------|----|---------|--------------|
| `integration_id` | string | path | Yes | The ID of the integration. |

### Get webhook payload signing key

**GET** `/notifications/integrations/{integration_id}/signingKey`

Get the signing key used to sign payloads for a webhook integration.

**Parameters:**

| Name | Type | In | Required | Description |
|------|------|----|---------|--------------|
| `integration_id` | string | path | Yes | The ID of the integration. |

### Rotate webhook payload signing key

**POST** `/notifications/integrations/{integration_id}/rotateSigningKey`

Rotate the webhook signing key. This immediately updates the signing key for any new notification.

**Parameters:**

| Name | Type | In | Required | Description |
|------|------|----|---------|--------------|
| `integration_id` | string | path | Yes | The ID of the integration. |

### Send mailing list confirmation email

**POST** `/notifications/mailinglist-confirmations`

Send a confirmation email to collect required opt-in for mailing list notifications.

