Skip to content

Update the org-default notification settings

PATCH
/v1/notifications
curl --request PATCH \
--url https://api.overwatch.weareheavy.dev/v1/notifications \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "uptimeRecipients": [ { "kind": "user", "userId": "usr_1a2b3c" }, { "kind": "email", "email": "oncall@example.com" } ], "uptimeWebhooks": [ { "kind": "slack", "url": "https://hooks.slack.com/services/T000/B000/XXXX" } ] }'

Partial update of the org defaults — omitted fields keep their current value. Takes effect on the next delivery. Session-only, owner/admin.

Media typeapplication/json

Notification receivers for one scope (org defaults or a site override). On reads every field is present; on writes all fields are optional — omitted fields keep their current value. At most 10 recipients and 5 webhooks per list.

object
uptimeRecipients

Receivers of uptime incident alerts (down/recovered).

Array
<= 10 items
One of:
object
kind
required
string
Allowed value: user
userId
required
string
uptimeWebhooks

Webhooks for uptime incident alerts.

Array<object>
<= 5 items

A notification webhook. slack, discord, and teams format the message for the respective chat app; http POSTs a structured JSON payload to any endpoint.

object
kind
required
string
Allowed values: slack discord teams http
url
required
string format: uri
crawlReportRecipients

Receivers of the per-run crawl summary (broken links + accessibility).

Array
<= 10 items
One of:
object
kind
required
string
Allowed value: user
userId
required
string
searchAlertRecipients

Receivers of search-traffic-drop alerts (Search Console).

Array
<= 10 items
One of:
object
kind
required
string
Allowed value: user
userId
required
string
searchAlertWebhooks

Webhooks for search-traffic-drop alerts.

Array<object>
<= 5 items

A notification webhook. slack, discord, and teams format the message for the respective chat app; http POSTs a structured JSON payload to any endpoint.

object
kind
required
string
Allowed values: slack discord teams http
url
required
string format: uri
perfAlertRecipients

Receivers of Core Web Vitals regression alerts.

Array
<= 10 items
One of:
object
kind
required
string
Allowed value: user
userId
required
string
perfAlertWebhooks

Webhooks for Core Web Vitals regression alerts.

Array<object>
<= 5 items

A notification webhook. slack, discord, and teams format the message for the respective chat app; http POSTs a structured JSON payload to any endpoint.

object
kind
required
string
Allowed values: slack discord teams http
url
required
string format: uri
reportRecipients

Receivers of the scheduled branded stakeholder report (PDF attachment).

Array
<= 10 items
One of:
object
kind
required
string
Allowed value: user
userId
required
string
includeOrgDefaults

Site overrides only — union the org defaults back in at delivery time. Meaningless on the org-defaults scope itself.

boolean
default: true
Example
{
"uptimeRecipients": [
{
"kind": "user",
"userId": "usr_1a2b3c"
},
{
"kind": "email",
"email": "oncall@example.com"
}
],
"uptimeWebhooks": [
{
"kind": "slack",
"url": "https://hooks.slack.com/services/T000/B000/XXXX"
}
]
}

The merged settings now in effect.

Media typeapplication/json
object
settings
required

Notification receivers for one scope (org defaults or a site override). On reads every field is present; on writes all fields are optional — omitted fields keep their current value. At most 10 recipients and 5 webhooks per list.

object
uptimeRecipients

Receivers of uptime incident alerts (down/recovered).

Array
<= 10 items
One of:
object
kind
required
string
Allowed value: user
userId
required
string
uptimeWebhooks

Webhooks for uptime incident alerts.

Array<object>
<= 5 items

A notification webhook. slack, discord, and teams format the message for the respective chat app; http POSTs a structured JSON payload to any endpoint.

object
kind
required
string
Allowed values: slack discord teams http
url
required
string format: uri
crawlReportRecipients

Receivers of the per-run crawl summary (broken links + accessibility).

Array
<= 10 items
One of:
object
kind
required
string
Allowed value: user
userId
required
string
searchAlertRecipients

Receivers of search-traffic-drop alerts (Search Console).

Array
<= 10 items
One of:
object
kind
required
string
Allowed value: user
userId
required
string
searchAlertWebhooks

Webhooks for search-traffic-drop alerts.

Array<object>
<= 5 items

A notification webhook. slack, discord, and teams format the message for the respective chat app; http POSTs a structured JSON payload to any endpoint.

object
kind
required
string
Allowed values: slack discord teams http
url
required
string format: uri
perfAlertRecipients

Receivers of Core Web Vitals regression alerts.

Array
<= 10 items
One of:
object
kind
required
string
Allowed value: user
userId
required
string
perfAlertWebhooks

Webhooks for Core Web Vitals regression alerts.

Array<object>
<= 5 items

A notification webhook. slack, discord, and teams format the message for the respective chat app; http POSTs a structured JSON payload to any endpoint.

object
kind
required
string
Allowed values: slack discord teams http
url
required
string format: uri
reportRecipients

Receivers of the scheduled branded stakeholder report (PDF attachment).

Array
<= 10 items
One of:
object
kind
required
string
Allowed value: user
userId
required
string
includeOrgDefaults

Site overrides only — union the org defaults back in at delivery time. Meaningless on the org-defaults scope itself.

boolean
default: true
Example
{
"settings": {
"uptimeRecipients": [
{
"kind": "user"
}
],
"uptimeWebhooks": [
{
"kind": "slack"
}
],
"crawlReportRecipients": [
{
"kind": "user"
}
],
"searchAlertRecipients": [
{
"kind": "user"
}
],
"searchAlertWebhooks": [
{
"kind": "slack"
}
],
"perfAlertRecipients": [
{
"kind": "user"
}
],
"perfAlertWebhooks": [
{
"kind": "slack"
}
],
"reportRecipients": [
{
"kind": "user"
}
],
"includeOrgDefaults": true
}
}

A recipient or webhook failed validation, or references a non-member.

Media typeapplication/json
object
error
required

A human-readable error message.

string
Example
{
"error": "recipient user is not a member of this organization"
}

Missing or invalid credentials.

Media typeapplication/json
object
error
required

A human-readable error message.

string
Example
{
"error": "invalid api key"
}

A dashboard session is required (API-key callers are rejected), or the session’s role does not allow this action.

Media typeapplication/json
object
error
required

A human-readable error message.

string
Example
{
"error": "a dashboard session is required"
}