---
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. Datadog, Jira Issue, Jira Service Management, Mailing list, Microsoft Teams, New Relic, OpsGenie, PagerDuty, Slack, Splunk On-Call, 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.
Datadog, Jira Issue, Jira Service Management, Mailing list, Microsoft Teams, New Relic, OpsGenie, PagerDuty, Slack, Splunk On-Call, 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 |
|-------|------|-------------|
| `apikey` | string | Datadog API key. |
| `site` | string | Datadog site (optional). Defaults to the US site if not specified. |

## Data model

| Field | Type | Description |
|-------|------|-------------|
| `baseurl` | string | The base URL of the Jira instance. |
| `issuetype` | string | The type of Jira issue to create. |
| `projectkey` | string | The key of the Jira project where issues will be created. |
| `token` | string | Jira API token. |
| `username` | string | The Jira username (email address) used to authenticate. |

## Data model

| Field | Type | Description |
|-------|------|-------------|
| `apikey` | string | Jira Service Management API key. |

## 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 |
|-------|------|-------------|
| `apikey` | string | OpsGenie API 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 |
|-------|------|-------------|
| `url` | string | Splunk On-Call webhook URL. |

## 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.
As a side effect, the deleted integration ID is removed from all audit log event mappings belonging to the same customer. Any audit log event mapping whose <code>integration_ids</code> list becomes empty as a result is automatically set to <code>mapping_status: inactive</code>. An inactive audit log event mapping does not trigger notifications.

**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.

