Update notification settings
curl --request PATCH \
--url https://api.snowseo.com/v3/settings/notifications \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"teamId": "<string>",
"weeklyReports": true,
"monthlyAudits": true,
"newOpportunities": true,
"resourceUsageWarning": true,
"clientReportsEnabled": true,
"weeklyReportTeamIds": [
"<string>"
],
"monthlyAuditTeamIds": [
"<string>"
],
"reportRecipients": [
{
"email": "<string>",
"weekly": true,
"monthly": true,
"whiteLabel": true,
"teamIds": [
"<string>"
],
"reports": {},
"sendTime": "<string>",
"timeZone": "<string>",
"weeklyDay": 3,
"monthlyDay": 16
}
],
"defaultReportTemplateSlug": "<string>",
"reportLinkPassword": {
"password": "<string>",
"hint": "<string>"
}
}
'import requests
url = "https://api.snowseo.com/v3/settings/notifications"
payload = {
"teamId": "<string>",
"weeklyReports": True,
"monthlyAudits": True,
"newOpportunities": True,
"resourceUsageWarning": True,
"clientReportsEnabled": True,
"weeklyReportTeamIds": ["<string>"],
"monthlyAuditTeamIds": ["<string>"],
"reportRecipients": [
{
"email": "<string>",
"weekly": True,
"monthly": True,
"whiteLabel": True,
"teamIds": ["<string>"],
"reports": {},
"sendTime": "<string>",
"timeZone": "<string>",
"weeklyDay": 3,
"monthlyDay": 16
}
],
"defaultReportTemplateSlug": "<string>",
"reportLinkPassword": {
"password": "<string>",
"hint": "<string>"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
teamId: '<string>',
weeklyReports: true,
monthlyAudits: true,
newOpportunities: true,
resourceUsageWarning: true,
clientReportsEnabled: true,
weeklyReportTeamIds: ['<string>'],
monthlyAuditTeamIds: ['<string>'],
reportRecipients: [
{
email: '<string>',
weekly: true,
monthly: true,
whiteLabel: true,
teamIds: ['<string>'],
reports: {},
sendTime: '<string>',
timeZone: '<string>',
weeklyDay: 3,
monthlyDay: 16
}
],
defaultReportTemplateSlug: '<string>',
reportLinkPassword: {password: '<string>', hint: '<string>'}
})
};
fetch('https://api.snowseo.com/v3/settings/notifications', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.snowseo.com/v3/settings/notifications",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'teamId' => '<string>',
'weeklyReports' => true,
'monthlyAudits' => true,
'newOpportunities' => true,
'resourceUsageWarning' => true,
'clientReportsEnabled' => true,
'weeklyReportTeamIds' => [
'<string>'
],
'monthlyAuditTeamIds' => [
'<string>'
],
'reportRecipients' => [
[
'email' => '<string>',
'weekly' => true,
'monthly' => true,
'whiteLabel' => true,
'teamIds' => [
'<string>'
],
'reports' => [
],
'sendTime' => '<string>',
'timeZone' => '<string>',
'weeklyDay' => 3,
'monthlyDay' => 16
]
],
'defaultReportTemplateSlug' => '<string>',
'reportLinkPassword' => [
'password' => '<string>',
'hint' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.snowseo.com/v3/settings/notifications"
payload := strings.NewReader("{\n \"teamId\": \"<string>\",\n \"weeklyReports\": true,\n \"monthlyAudits\": true,\n \"newOpportunities\": true,\n \"resourceUsageWarning\": true,\n \"clientReportsEnabled\": true,\n \"weeklyReportTeamIds\": [\n \"<string>\"\n ],\n \"monthlyAuditTeamIds\": [\n \"<string>\"\n ],\n \"reportRecipients\": [\n {\n \"email\": \"<string>\",\n \"weekly\": true,\n \"monthly\": true,\n \"whiteLabel\": true,\n \"teamIds\": [\n \"<string>\"\n ],\n \"reports\": {},\n \"sendTime\": \"<string>\",\n \"timeZone\": \"<string>\",\n \"weeklyDay\": 3,\n \"monthlyDay\": 16\n }\n ],\n \"defaultReportTemplateSlug\": \"<string>\",\n \"reportLinkPassword\": {\n \"password\": \"<string>\",\n \"hint\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.snowseo.com/v3/settings/notifications")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"teamId\": \"<string>\",\n \"weeklyReports\": true,\n \"monthlyAudits\": true,\n \"newOpportunities\": true,\n \"resourceUsageWarning\": true,\n \"clientReportsEnabled\": true,\n \"weeklyReportTeamIds\": [\n \"<string>\"\n ],\n \"monthlyAuditTeamIds\": [\n \"<string>\"\n ],\n \"reportRecipients\": [\n {\n \"email\": \"<string>\",\n \"weekly\": true,\n \"monthly\": true,\n \"whiteLabel\": true,\n \"teamIds\": [\n \"<string>\"\n ],\n \"reports\": {},\n \"sendTime\": \"<string>\",\n \"timeZone\": \"<string>\",\n \"weeklyDay\": 3,\n \"monthlyDay\": 16\n }\n ],\n \"defaultReportTemplateSlug\": \"<string>\",\n \"reportLinkPassword\": {\n \"password\": \"<string>\",\n \"hint\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.snowseo.com/v3/settings/notifications")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"teamId\": \"<string>\",\n \"weeklyReports\": true,\n \"monthlyAudits\": true,\n \"newOpportunities\": true,\n \"resourceUsageWarning\": true,\n \"clientReportsEnabled\": true,\n \"weeklyReportTeamIds\": [\n \"<string>\"\n ],\n \"monthlyAuditTeamIds\": [\n \"<string>\"\n ],\n \"reportRecipients\": [\n {\n \"email\": \"<string>\",\n \"weekly\": true,\n \"monthly\": true,\n \"whiteLabel\": true,\n \"teamIds\": [\n \"<string>\"\n ],\n \"reports\": {},\n \"sendTime\": \"<string>\",\n \"timeZone\": \"<string>\",\n \"weeklyDay\": 3,\n \"monthlyDay\": 16\n }\n ],\n \"defaultReportTemplateSlug\": \"<string>\",\n \"reportLinkPassword\": {\n \"password\": \"<string>\",\n \"hint\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"weeklyReports": true,
"monthlyAudits": true,
"weeklyReportTeamIds": [
"<string>"
],
"monthlyAuditTeamIds": [
"<string>"
],
"newOpportunities": true,
"resourceUsageWarning": true,
"clientReportsEnabled": true,
"reportRecipients": [
{}
],
"defaultReportTemplateSlug": "<string>",
"reportLinkPassword": {},
"whiteLabelAvailable": true
}Settings
Update Notification Settings
Update the organization’s notification and report settings.
PATCH
/
v3
/
settings
/
notifications
Update notification settings
curl --request PATCH \
--url https://api.snowseo.com/v3/settings/notifications \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"teamId": "<string>",
"weeklyReports": true,
"monthlyAudits": true,
"newOpportunities": true,
"resourceUsageWarning": true,
"clientReportsEnabled": true,
"weeklyReportTeamIds": [
"<string>"
],
"monthlyAuditTeamIds": [
"<string>"
],
"reportRecipients": [
{
"email": "<string>",
"weekly": true,
"monthly": true,
"whiteLabel": true,
"teamIds": [
"<string>"
],
"reports": {},
"sendTime": "<string>",
"timeZone": "<string>",
"weeklyDay": 3,
"monthlyDay": 16
}
],
"defaultReportTemplateSlug": "<string>",
"reportLinkPassword": {
"password": "<string>",
"hint": "<string>"
}
}
'import requests
url = "https://api.snowseo.com/v3/settings/notifications"
payload = {
"teamId": "<string>",
"weeklyReports": True,
"monthlyAudits": True,
"newOpportunities": True,
"resourceUsageWarning": True,
"clientReportsEnabled": True,
"weeklyReportTeamIds": ["<string>"],
"monthlyAuditTeamIds": ["<string>"],
"reportRecipients": [
{
"email": "<string>",
"weekly": True,
"monthly": True,
"whiteLabel": True,
"teamIds": ["<string>"],
"reports": {},
"sendTime": "<string>",
"timeZone": "<string>",
"weeklyDay": 3,
"monthlyDay": 16
}
],
"defaultReportTemplateSlug": "<string>",
"reportLinkPassword": {
"password": "<string>",
"hint": "<string>"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
teamId: '<string>',
weeklyReports: true,
monthlyAudits: true,
newOpportunities: true,
resourceUsageWarning: true,
clientReportsEnabled: true,
weeklyReportTeamIds: ['<string>'],
monthlyAuditTeamIds: ['<string>'],
reportRecipients: [
{
email: '<string>',
weekly: true,
monthly: true,
whiteLabel: true,
teamIds: ['<string>'],
reports: {},
sendTime: '<string>',
timeZone: '<string>',
weeklyDay: 3,
monthlyDay: 16
}
],
defaultReportTemplateSlug: '<string>',
reportLinkPassword: {password: '<string>', hint: '<string>'}
})
};
fetch('https://api.snowseo.com/v3/settings/notifications', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.snowseo.com/v3/settings/notifications",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'teamId' => '<string>',
'weeklyReports' => true,
'monthlyAudits' => true,
'newOpportunities' => true,
'resourceUsageWarning' => true,
'clientReportsEnabled' => true,
'weeklyReportTeamIds' => [
'<string>'
],
'monthlyAuditTeamIds' => [
'<string>'
],
'reportRecipients' => [
[
'email' => '<string>',
'weekly' => true,
'monthly' => true,
'whiteLabel' => true,
'teamIds' => [
'<string>'
],
'reports' => [
],
'sendTime' => '<string>',
'timeZone' => '<string>',
'weeklyDay' => 3,
'monthlyDay' => 16
]
],
'defaultReportTemplateSlug' => '<string>',
'reportLinkPassword' => [
'password' => '<string>',
'hint' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.snowseo.com/v3/settings/notifications"
payload := strings.NewReader("{\n \"teamId\": \"<string>\",\n \"weeklyReports\": true,\n \"monthlyAudits\": true,\n \"newOpportunities\": true,\n \"resourceUsageWarning\": true,\n \"clientReportsEnabled\": true,\n \"weeklyReportTeamIds\": [\n \"<string>\"\n ],\n \"monthlyAuditTeamIds\": [\n \"<string>\"\n ],\n \"reportRecipients\": [\n {\n \"email\": \"<string>\",\n \"weekly\": true,\n \"monthly\": true,\n \"whiteLabel\": true,\n \"teamIds\": [\n \"<string>\"\n ],\n \"reports\": {},\n \"sendTime\": \"<string>\",\n \"timeZone\": \"<string>\",\n \"weeklyDay\": 3,\n \"monthlyDay\": 16\n }\n ],\n \"defaultReportTemplateSlug\": \"<string>\",\n \"reportLinkPassword\": {\n \"password\": \"<string>\",\n \"hint\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.snowseo.com/v3/settings/notifications")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"teamId\": \"<string>\",\n \"weeklyReports\": true,\n \"monthlyAudits\": true,\n \"newOpportunities\": true,\n \"resourceUsageWarning\": true,\n \"clientReportsEnabled\": true,\n \"weeklyReportTeamIds\": [\n \"<string>\"\n ],\n \"monthlyAuditTeamIds\": [\n \"<string>\"\n ],\n \"reportRecipients\": [\n {\n \"email\": \"<string>\",\n \"weekly\": true,\n \"monthly\": true,\n \"whiteLabel\": true,\n \"teamIds\": [\n \"<string>\"\n ],\n \"reports\": {},\n \"sendTime\": \"<string>\",\n \"timeZone\": \"<string>\",\n \"weeklyDay\": 3,\n \"monthlyDay\": 16\n }\n ],\n \"defaultReportTemplateSlug\": \"<string>\",\n \"reportLinkPassword\": {\n \"password\": \"<string>\",\n \"hint\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.snowseo.com/v3/settings/notifications")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"teamId\": \"<string>\",\n \"weeklyReports\": true,\n \"monthlyAudits\": true,\n \"newOpportunities\": true,\n \"resourceUsageWarning\": true,\n \"clientReportsEnabled\": true,\n \"weeklyReportTeamIds\": [\n \"<string>\"\n ],\n \"monthlyAuditTeamIds\": [\n \"<string>\"\n ],\n \"reportRecipients\": [\n {\n \"email\": \"<string>\",\n \"weekly\": true,\n \"monthly\": true,\n \"whiteLabel\": true,\n \"teamIds\": [\n \"<string>\"\n ],\n \"reports\": {},\n \"sendTime\": \"<string>\",\n \"timeZone\": \"<string>\",\n \"weeklyDay\": 3,\n \"monthlyDay\": 16\n }\n ],\n \"defaultReportTemplateSlug\": \"<string>\",\n \"reportLinkPassword\": {\n \"password\": \"<string>\",\n \"hint\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"weeklyReports": true,
"monthlyAudits": true,
"weeklyReportTeamIds": [
"<string>"
],
"monthlyAuditTeamIds": [
"<string>"
],
"newOpportunities": true,
"resourceUsageWarning": true,
"clientReportsEnabled": true,
"reportRecipients": [
{}
],
"defaultReportTemplateSlug": "<string>",
"reportLinkPassword": {},
"whiteLabelAvailable": true
}Update any subset of the fields returned by Get Notification Settings. Only the keys you send are changed; the merged, canonical settings are returned.
Other write-only details:
Writing requires managed (admin/owner) access to the brand. The change applies to every brand in the organization.
reportRecipients replaces the whole list, so send every recipient you want to keep. It is sanitized on write: emails are trimmed, lowercased, and deduplicated; entries with an invalid email or with both weekly and monthly off are dropped; teamIds is narrowed to brands in your organization (a recipient without teamIds receives nothing); and the list is capped at 10 recipients. whiteLabelAvailable is read-only and ignored if sent.weeklyReportTeamIds/monthlyAuditTeamIds: sendnull(or every brand) for all brands.defaultReportTemplateSlug: an unknown slug resets it tonull.reportLinkPassword:{ "mode": "auto" | "fixed", "password"?, "hint"? }, ornullto disable.passwordapplies only tofixed; omit it to keep the stored one.
Authorizations
bearerAuthapiKey
Your SnowSEO API key (sk_...).
Body
application/json
Brands the weekly report covers. Null or omitted means all brands.
Brands the monthly audit covers. Null or omitted means all brands.
Show child attributes
Show child attributes
Template slug client reports fall back to. Null resets to the built-in default template.
Password gate on client report links. Null disables it.
Show child attributes
Show child attributes
Response
200 - application/json
Default Response
Was this page helpful?

