# Email delivery settings

Source: https://neondeerdata.com/docs/api/email-notifications/settings/

Read and change permitted delivery settings, or pause and resume alerts.

The APIs on this page require alpha access for your organization. App availability and API access are separate. [Check access and permissions](https://neondeerdata.com/docs/api/permissions/).

## Get email notification settings

```http
GET /v1/email-alerts/settings

```

Gets whether email alerts are on, the subject prefix, whether a BCC copy is sent, the delivery limits, how long an alert waits before it is discarded, the values each limit may be set to, and the settings' version. The BCC address is shown only in Neon Deer.

Requires `email_notifications:config:read`. The connection also needs access to the relevant tables, objects, or workflows.

MCP action: `get_email_notification_settings`. Its argument names match the fields below; an HTTP header is passed using its argument name in MCP.

No request parameters are needed.

### Response

| HTTP status | Result                                                                |
| ----------- | --------------------------------------------------------------------- |
| `200`       | The requested result. Asynchronous work returns an operation to poll. |

Required fields are required within their containing object. Notes identify fields that apply only to a particular response alternative.

| Response field                       | Type                     | Required in object | Notes |
| ------------------------------------ | ------------------------ | ------------------ | ----- |
| `data`                               | object                   | Yes                |       |
| `data.object`                        | `"email_alert_settings"` | Yes                |       |
| `data.version`                       | integer                  | Yes                |       |
| `data.paused`                        | boolean                  | Yes                |       |
| `data.sending_included`              | boolean                  | Yes                |       |
| `data.subject_prefix`                | string                   | Yes                |       |
| `data.per_recipient_hour`            | integer                  | Yes                |       |
| `data.per_recipient_minute`          | integer                  | Yes                |       |
| `data.per_hour`                      | integer                  | Yes                |       |
| `data.discard_after_minutes`         | integer                  | Yes                |       |
| `data.choices`                       | object                   | Yes                |       |
| `data.choices.per_recipient_hour`    | array of integer         | Yes                |       |
| `data.choices.per_recipient_minute`  | array of integer         | Yes                |       |
| `data.choices.per_hour`              | array of integer         | Yes                |       |
| `data.choices.discard_after_minutes` | array of integer         | Yes                |       |
| `data.bcc_configured`                | boolean                  | Yes                |       |

### Errors

| HTTP status | Meaning                                                                                                                                           |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `400`       | One of: credential_in_url, invalid_parameter, unknown_parameter.                                                                                  |
| `401`       | One of: missing_credential, invalid_credential, credential_expired, credential_revoked.                                                           |
| `402`       | One of: payment_overdue.                                                                                                                          |
| `403`       | The current permissions, plan or policy do not allow this request.                                                                                |
| `404`       | One of: not_found.                                                                                                                                |
| `409`       | The request conflicts with current resource state, authorization or an earlier request. Read the error code and current resource before retrying. |
| `410`       | The requested resource or retained recovery data has expired.                                                                                     |
| `413`       | One of: request_too_large.                                                                                                                        |
| `422`       | A field, filter or selection cannot be used for this request.                                                                                     |
| `423`       | One of: organization_reopening.                                                                                                                   |
| `428`       | One of: customer_agreement_required.                                                                                                              |
| `429`       | One of: rate_limited.                                                                                                                             |
| `503`       | One of: service_unavailable.                                                                                                                      |

See [errors and recovery](https://neondeerdata.com/docs/api/errors/) and [safe retries](https://neondeerdata.com/docs/api/requests/) before repeating a write.

## Change email notification settings

```http
PATCH /v1/email-alerts/settings

```

Changes the subject prefix, the BCC address that gets a copy of every alert (null stops the copy), the delivery limits or how long an alert waits before it is discarded, at the version you read. Settings you leave out stay as they are. The BCC address is never returned. The values replaced are not kept. This can't be undone.

Requires `email_notifications:config:write`. The connection also needs access to the relevant tables, objects, or workflows.

MCP action: `update_email_notification_settings`. Its argument names match the fields below; an HTTP header is passed using its argument name in MCP.

### Parameters

| Name                    | Send in   | Required | Type or allowed values | Notes |
| ----------------------- | --------- | -------- | ---------------------- | ----- |
| `expected_version`      | JSON body | Yes      | integer                |       |
| `subject_prefix`        | JSON body | No       | string                 |       |
| `bcc`                   | JSON body | No       | string (email) or null |       |
| `per_recipient_hour`    | JSON body | No       | integer                |       |
| `per_recipient_minute`  | JSON body | No       | integer                |       |
| `per_hour`              | JSON body | No       | integer                |       |
| `discard_after_minutes` | JSON body | No       | integer                |       |

### Response

| HTTP status | Result                                                                |
| ----------- | --------------------------------------------------------------------- |
| `200`       | The requested result. Asynchronous work returns an operation to poll. |

Required fields are required within their containing object. Notes identify fields that apply only to a particular response alternative.

| Response field                       | Type                     | Required in object | Notes |
| ------------------------------------ | ------------------------ | ------------------ | ----- |
| `data`                               | object                   | Yes                |       |
| `data.object`                        | `"email_alert_settings"` | Yes                |       |
| `data.version`                       | integer                  | Yes                |       |
| `data.paused`                        | boolean                  | Yes                |       |
| `data.sending_included`              | boolean                  | Yes                |       |
| `data.subject_prefix`                | string                   | Yes                |       |
| `data.per_recipient_hour`            | integer                  | Yes                |       |
| `data.per_recipient_minute`          | integer                  | Yes                |       |
| `data.per_hour`                      | integer                  | Yes                |       |
| `data.discard_after_minutes`         | integer                  | Yes                |       |
| `data.choices`                       | object                   | Yes                |       |
| `data.choices.per_recipient_hour`    | array of integer         | Yes                |       |
| `data.choices.per_recipient_minute`  | array of integer         | Yes                |       |
| `data.choices.per_hour`              | array of integer         | Yes                |       |
| `data.choices.discard_after_minutes` | array of integer         | Yes                |       |

### Errors

| HTTP status | Meaning                                                                                                                                           |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `400`       | One of: credential_in_url, invalid_parameter, unknown_parameter.                                                                                  |
| `401`       | One of: missing_credential, invalid_credential, credential_expired, credential_revoked.                                                           |
| `402`       | One of: payment_overdue.                                                                                                                          |
| `403`       | The current permissions, plan or policy do not allow this request.                                                                                |
| `404`       | One of: not_found.                                                                                                                                |
| `409`       | The request conflicts with current resource state, authorization or an earlier request. Read the error code and current resource before retrying. |
| `410`       | The requested resource or retained recovery data has expired.                                                                                     |
| `413`       | One of: request_too_large.                                                                                                                        |
| `422`       | A field, filter or selection cannot be used for this request.                                                                                     |
| `423`       | One of: organization_reopening.                                                                                                                   |
| `428`       | One of: customer_agreement_required.                                                                                                              |
| `429`       | One of: rate_limited.                                                                                                                             |
| `503`       | One of: service_unavailable.                                                                                                                      |

See [errors and recovery](https://neondeerdata.com/docs/api/errors/) and [safe retries](https://neondeerdata.com/docs/api/requests/) before repeating a write.

## Turn off email alerts

```http
POST /v1/email-alerts/pause

```

Turns email alerts off for the organization. New alerts requested by workflows while alerts are off are refused rather than queued. Alerts already waiting remain queued and can send after alerts resume, unless canceled or expired. A message already being sent cannot be recalled.

Requires `email_notifications:config:write`. The connection also needs access to the relevant tables, objects, or workflows.

MCP action: `pause_email_notifications`. Its argument names match the fields below; an HTTP header is passed using its argument name in MCP.

### Parameters

| Name          | Send in                   | Required | Type or allowed values | Notes |
| ------------- | ------------------------- | -------- | ---------------------- | ----- |
| `request_key` | Header: `Idempotency-Key` | Yes      | string                 |       |

### Response

| HTTP status | Result                                                                |
| ----------- | --------------------------------------------------------------------- |
| `200`       | The requested result. Asynchronous work returns an operation to poll. |

Required fields are required within their containing object. Notes identify fields that apply only to a particular response alternative.

| Response field                       | Type                     | Required in object | Notes |
| ------------------------------------ | ------------------------ | ------------------ | ----- |
| `data`                               | object                   | Yes                |       |
| `data.object`                        | `"email_alert_settings"` | Yes                |       |
| `data.version`                       | integer                  | Yes                |       |
| `data.paused`                        | boolean                  | Yes                |       |
| `data.sending_included`              | boolean                  | Yes                |       |
| `data.subject_prefix`                | string                   | Yes                |       |
| `data.per_recipient_hour`            | integer                  | Yes                |       |
| `data.per_recipient_minute`          | integer                  | Yes                |       |
| `data.per_hour`                      | integer                  | Yes                |       |
| `data.discard_after_minutes`         | integer                  | Yes                |       |
| `data.choices`                       | object                   | Yes                |       |
| `data.choices.per_recipient_hour`    | array of integer         | Yes                |       |
| `data.choices.per_recipient_minute`  | array of integer         | Yes                |       |
| `data.choices.per_hour`              | array of integer         | Yes                |       |
| `data.choices.discard_after_minutes` | array of integer         | Yes                |       |

### Errors

| HTTP status | Meaning                                                                                                                                           |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `400`       | One of: credential_in_url, invalid_parameter, unknown_parameter, invalid_request.                                                                 |
| `401`       | One of: missing_credential, invalid_credential, credential_expired, credential_revoked.                                                           |
| `402`       | One of: payment_overdue.                                                                                                                          |
| `403`       | The current permissions, plan or policy do not allow this request.                                                                                |
| `404`       | One of: not_found.                                                                                                                                |
| `409`       | The request conflicts with current resource state, authorization or an earlier request. Read the error code and current resource before retrying. |
| `410`       | The requested resource or retained recovery data has expired.                                                                                     |
| `413`       | One of: request_too_large.                                                                                                                        |
| `422`       | A field, filter or selection cannot be used for this request.                                                                                     |
| `423`       | One of: organization_reopening.                                                                                                                   |
| `428`       | One of: customer_agreement_required.                                                                                                              |
| `429`       | One of: rate_limited.                                                                                                                             |
| `503`       | One of: service_unavailable.                                                                                                                      |

See [errors and recovery](https://neondeerdata.com/docs/api/errors/) and [safe retries](https://neondeerdata.com/docs/api/requests/) before repeating a write.

## Turn on email alerts

```http
POST /v1/email-alerts/resume

```

Turns email alerts back on for the organization, so workflows' alerts are queued and sent again.

Requires `email_notifications:config:write`. The connection also needs access to the relevant tables, objects, or workflows.

MCP action: `resume_email_notifications`. Its argument names match the fields below; an HTTP header is passed using its argument name in MCP.

### Parameters

| Name          | Send in                   | Required | Type or allowed values | Notes |
| ------------- | ------------------------- | -------- | ---------------------- | ----- |
| `request_key` | Header: `Idempotency-Key` | Yes      | string                 |       |

### Response

| HTTP status | Result                                                                |
| ----------- | --------------------------------------------------------------------- |
| `200`       | The requested result. Asynchronous work returns an operation to poll. |

Required fields are required within their containing object. Notes identify fields that apply only to a particular response alternative.

| Response field                       | Type                     | Required in object | Notes |
| ------------------------------------ | ------------------------ | ------------------ | ----- |
| `data`                               | object                   | Yes                |       |
| `data.object`                        | `"email_alert_settings"` | Yes                |       |
| `data.version`                       | integer                  | Yes                |       |
| `data.paused`                        | boolean                  | Yes                |       |
| `data.sending_included`              | boolean                  | Yes                |       |
| `data.subject_prefix`                | string                   | Yes                |       |
| `data.per_recipient_hour`            | integer                  | Yes                |       |
| `data.per_recipient_minute`          | integer                  | Yes                |       |
| `data.per_hour`                      | integer                  | Yes                |       |
| `data.discard_after_minutes`         | integer                  | Yes                |       |
| `data.choices`                       | object                   | Yes                |       |
| `data.choices.per_recipient_hour`    | array of integer         | Yes                |       |
| `data.choices.per_recipient_minute`  | array of integer         | Yes                |       |
| `data.choices.per_hour`              | array of integer         | Yes                |       |
| `data.choices.discard_after_minutes` | array of integer         | Yes                |       |

### Errors

| HTTP status | Meaning                                                                                                                                           |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `400`       | One of: credential_in_url, invalid_parameter, unknown_parameter, invalid_request.                                                                 |
| `401`       | One of: missing_credential, invalid_credential, credential_expired, credential_revoked.                                                           |
| `402`       | One of: payment_overdue.                                                                                                                          |
| `403`       | The current permissions, plan or policy do not allow this request.                                                                                |
| `404`       | One of: not_found.                                                                                                                                |
| `409`       | The request conflicts with current resource state, authorization or an earlier request. Read the error code and current resource before retrying. |
| `410`       | The requested resource or retained recovery data has expired.                                                                                     |
| `413`       | One of: request_too_large.                                                                                                                        |
| `422`       | A field, filter or selection cannot be used for this request.                                                                                     |
| `423`       | One of: organization_reopening.                                                                                                                   |
| `428`       | One of: customer_agreement_required.                                                                                                              |
| `429`       | One of: rate_limited.                                                                                                                             |
| `503`       | One of: service_unavailable.                                                                                                                      |

See [errors and recovery](https://neondeerdata.com/docs/api/errors/) and [safe retries](https://neondeerdata.com/docs/api/requests/) before repeating a write.

The [public OpenAPI document](https://neondeerdata.com/docs/api/meta/openapi/) lists generally available API families. Alpha operations may not appear in that document; their request and response fields are listed on this page. Use the [API Playground](https://neondeerdata.com/docs/api/testing/) to inspect a real response with your connection's access.
