Keywords whose results page changed character
https://seolyticize.com /api/v1/tools/get_serp_intent_shifts Tracked keywords whose results page changed what it is for between its two latest captures: the mix moving (informational, commercial, local, plain — e.g. informational → commercial when shopping results arrive) or a watched feature appearing or going (AI Overview, video carousel, shopping, map pack, featured snippet, top stories). A page that no longer fits the results page's intent loses however good it is. Answers 'did Google change what it shows for our keywords' and 'where did AI Overviews appear'. Free.
Parameters
Idempotency-KeystringheaderRequest body
application/json
clientIdstringrequireddaysinteger{
"clientId": "string",
"days": 14
}Code samples
cURL
curl -X POST "https://seolyticize.com/api/v1/tools/get_serp_intent_shifts" \
-H "Authorization: Bearer $SEOLYTICIZE_API_KEY" \
-H "Idempotency-Key: <value>" \
-H "Content-Type: application/json" \
-d '{"clientId":"string","days":14}'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/get_serp_intent_shifts
WWW-AuthenticatestringSame as 400 · POST /api/v1/tools/get_serp_intent_shifts
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_serp_intent_shifts
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_serp_intent_shifts
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_serp_intent_shifts
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_serp_intent_shifts
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerRetry-AfterintegerSame as 400 · POST /api/v1/tools/get_serp_intent_shifts
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-Resetinteger