---
title: "Update delivery notification settings"
method: PATCH
path: "/v1/projects/{projectId}/notification-settings"
---

# Update delivery notification settings

`PATCH /v1/projects/{projectId}/notification-settings`

## Request

- Base URL: `https://docs.greatwait.dev` (the document declares no server; this is the origin it was published from)
- URL: `https://docs.greatwait.dev/v1/projects/{projectId}/notification-settings`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer and API key in header `Greatwait-Environment` and API key in header `Greatwait-Project`

An admin updates this project's environment preferences at an expected revision. Selected recipients must be current organization members; arbitrary email addresses are not accepted. Null disables the status webhook. Changing URL or filters never reveals a signing secret. Mint the first key through the secure signing-key operation before webhook delivery starts. Failed means final unsuccessful settlement. Redelivery never repeats it. Failed-event webhook calls and their retries are free. Every failed occurrence is emailed separately; no summary window suppresses failures.

## Path parameters

- `projectId` string, required

## Headers

- `Idempotency-Key` string, required

## Request body

- object
  - `expectedRevision` integer, required
  - `email` object
    - `enabled` boolean, required
    - `recipients` union, required
      - object
        - `kind` 'admins', required
      - object
        - `kind` 'members', required
        - `memberIds` string[], required
    - `scheduleKinds` 'both' | 'one-shot' | 'recurring', required
  - `statusWebhook` object, nullable
    - `url` string, uri, required
    - `events` string[], required

## Response `200`

Update delivery notification settings

- object
  - `project` string, required
  - `environmentKind` 'test' | 'live', required
  - `revision` integer, required
  - `email` object, required
    - `enabled` boolean, required
    - `recipients` union, required
      - object
        - `kind` 'admins', required
      - object
        - `kind` 'members', required
        - `memberIds` string[], required
    - `scheduleKinds` 'both' | 'one-shot' | 'recurring', required
  - `statusWebhook` object
    - `url` string, uri, required
    - `events` string[], required
    - `signingKey` object
      - `id` string, required
    - `revision` integer, required

## Other responses

- `400`: Problem document. Possible codes at this status: invalid_request.
- `401`: Problem document. Possible codes at this status: authentication_required, credential_expired, credential_revoked.
- `403`: Problem document. Possible codes at this status: scope_missing.
- `404`: Problem document. Possible codes at this status: not_found.
- `409`: Problem document. Possible codes at this status: idempotency_key_reused, project_archived, revision_conflict.
- `429`: Problem document. Possible codes at this status: rate_limited.
- `503`: Problem document. Possible codes at this status: capability_not_configured, service_unavailable.

---

[API](https://skmtc.dev/greatwait/apis/greatwait-v1.md) · [All operations](https://skmtc.dev/greatwait/apis/greatwait-v1/llms.txt) · [OpenAPI document](https://skmtc.dev/greatwait/apis/greatwait-v1/revisions/6855bce23e72?raw)
