---
title: Custom Signals
summary: Custom signals endpoints provide functionality for adding, editing, and deleting custom signals.
url: https://www.fastly.com/documentation/reference/api/ngwaf/signals
---

Custom signals endpoints provide functionality for adding, editing, and deleting custom signals.

## Data model

| Field | Type | Description |
|-------|------|-------------|
| `description` | string | The custom signal description. |
| `name` | string | The custom signal name. Can only contain lower and upper case letters, digits, spaces, and dashes (<code>-</code>). |
| `id` | string | The custom signal ID. |
| `reference_id` | string | The reference ID of the signal. The ID is generated from the signal's name. The name appears lowercased, has spaces converted to dashes, and is prefixed with <code>site</code>. For example, a name <code>foo signal</code> will generate the reference ID <code>site.foo-signal</code>. |
| `scope` | object |  |
| `applies_to` | array | Defines the workspaces to which the signal applies.  For <code>workspace</code> signals, this array contains a single workspace ID. For <code>account</code> signals, this array can contain multiple workspace IDs or <code>*</code> to apply to all workspaces. |
| `type` | string | Indicates whether the signal applies to a single workspace or multiple workspaces. A <code>workspace</code> signal is specific to a workspace, whereas an <code>account</code> signal can apply to multiple workspaces. |

## API endpoints

### Get account level custom signals

**GET** `/ngwaf/v1/signals`

List account level signals.

**Parameters:**

| Name | Type | In | Required | Description |
|------|------|----|---------|--------------|
| `limit` | integer | query | No | Limit how many results are returned. |

### Create a new account-level custom signal

**POST** `/ngwaf/v1/signals`

Create a new account-level custom signal.

### Get an account-level custom signal

**GET** `/ngwaf/v1/signals/{signal_id}`

Get an account-level custom signal.

**Parameters:**

| Name | Type | In | Required | Description |
|------|------|----|---------|--------------|
| `signal_id` | string | path | Yes | The ID of the custom signal. |

### Remove an account-level custom signal

**DELETE** `/ngwaf/v1/signals/{signal_id}`

Remove an account-level custom signal.

**Parameters:**

| Name | Type | In | Required | Description |
|------|------|----|---------|--------------|
| `signal_id` | string | path | Yes | The ID of the custom signal. |

### Edit an account-level custom signal

**PATCH** `/ngwaf/v1/signals/{signal_id}`

Edit an account-level custom signal.

**Parameters:**

| Name | Type | In | Required | Description |
|------|------|----|---------|--------------|
| `signal_id` | string | path | Yes | The ID of the custom signal. |

### List workspace custom signals

**GET** `/ngwaf/v1/workspaces/{workspace_id}/signals`

List custom signals for a workspace.

**Parameters:**

| Name | Type | In | Required | Description |
|------|------|----|---------|--------------|
| `limit` | integer | query | No | Limit how many results are returned. |
| `workspace_id` | string | path | Yes | The ID of the workspace. |

### Create a workspace custom signal

**POST** `/ngwaf/v1/workspaces/{workspace_id}/signals`

Create a new custom signal for a workspace.

**Parameters:**

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

### Get a workspace custom signal

**GET** `/ngwaf/v1/workspaces/{workspace_id}/signals/{signal_id}`

Get a workspace custom signal by ID.

**Parameters:**

| Name | Type | In | Required | Description |
|------|------|----|---------|--------------|
| `signal_id` | string | path | Yes | The ID of the custom signal. |
| `workspace_id` | string | path | Yes | The ID of the workspace. |

### Remove a workspace custom signal

**DELETE** `/ngwaf/v1/workspaces/{workspace_id}/signals/{signal_id}`

Remove a workspace custom signal.

**Parameters:**

| Name | Type | In | Required | Description |
|------|------|----|---------|--------------|
| `signal_id` | string | path | Yes | The ID of the custom signal. |
| `workspace_id` | string | path | Yes | The ID of the workspace. |

### Edit a workspace custom signal

**PATCH** `/ngwaf/v1/workspaces/{workspace_id}/signals/{signal_id}`

Edit a workspace custom signal.

**Parameters:**

| Name | Type | In | Required | Description |
|------|------|----|---------|--------------|
| `signal_id` | string | path | Yes | The ID of the custom signal. |
| `workspace_id` | string | path | Yes | The ID of the workspace. |

