Add the default alerts
https://seolyticize.com /api/v1/tools/add_default_alerts Gives a client the four alerts every new client now starts with: the site goes down (site-unreachable), non-branded Search Console clicks fall 30% or more week on week (traffic-drop 30), a crawl finds critical issues (new-critical-issues 1), and a tracked keyword drops 5 or more places (rank-drop 5). Each goes to the agency owner's email until changed with update_alert_rule. A kind the client already has a rule for is kept as it is, so it is safe to repeat. channel with webhookUrl (slack, webhook, discord), emailRecipients (email) or telegramChatId (telegram) sends them there instead, and moves default rules still going only to the owner's email (moved). include: ["page-changes"] adds a fifth: own pages whose title, meta description, H1 or canonical changed, went noindex or 404. Pass clientId for one client, or allClients: true for every live client the key may manage. Answers 'set up the usual alerts'. Free.
Parameters
Idempotency-KeystringheaderRequest body
application/json
clientIdstringallClientsbooleanchannelstringwebhookUrlstringemailRecipientsstring[]telegramChatIdstringincludestring[]{
"clientId": "string",
"allClients": true,
"channel": "slack",
"webhookUrl": "string",
"emailRecipients": [
"string"
],
"telegramChatId": "string",
"include": [
"page-changes"
]
}Code samples
cURL
curl -X POST "https://seolyticize.com/api/v1/tools/add_default_alerts" \
-H "Authorization: Bearer $SEOLYTICIZE_API_KEY" \
-H "Idempotency-Key: <value>" \
-H "Content-Type: application/json" \
-d '{"clientId":"string","allClients":true,"channel":"slack","webhookUrl":"string","emailRecipients":["string"],"telegramChatId":"string","include":["page-changes"]}'TypeScript
Python
Go
PHP
Ruby
Java
Responses
data, and its meta.Example
{
"data": {},
"meta": {
"requestId": "string",
"costMicros": 0,
"cached": true,
"cachedFrom": "string",
"dataAsOf": "string",
"sources": [
"string"
],
"partial": true,
"next": [
{
"tool": "string",
"args": {},
"why": "string"
}
],
"nextCursor": "string",
"dryRun": true
}
}Schema
datarequiredmetaobjectrequiredShow child parameters
requestIdstringrequiredcostMicrosintegerrequiredcachedbooleanrequiredcachedFromstringdataAsOfstringsourcesstring[]partialbooleanrequirednextobject[]requiredShow child parameters
toolstringargsobjectwhystringnextCursorstringdryRunbooleanX-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerX-Request-IdstringExample
{
"error": "string",
"code": "string",
"next": "string",
"requestId": "string"
}Schema
errorstringrequiredcodestringnextstringrequestIdstringX-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/add_default_alerts
WWW-AuthenticatestringSame as 400 · POST /api/v1/tools/add_default_alerts
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/add_default_alerts
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/add_default_alerts
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/add_default_alerts
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/add_default_alerts
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerRetry-AfterintegerSame as 400 · POST /api/v1/tools/add_default_alerts
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-Resetinteger