What the ranking pages have in common
https://seolyticize.com /api/v1/tools/get_serp_content_profile Reads the top Google results for a keyword and each ranking page, and reports what they share: word count range, the outline themes most of them cover, the terms they use and how often, the questions they answer, tables, lists, images, video, schema types, reading ease and how recently they were updated — plus People Also Ask and related searches, and each page's own summary. Results that are not pages to write against — videos and Shorts, forum threads, social posts, app store listings — stay in pages with their reason in excluded, and are listed in excluded as {url, reason}; targetPages counts the rest. Answers 'what does it take to rank for this'. The results page is a paid lookup on the client's account unless someone bought it in the last day (spend says which); the pages are fetched free.
Parameters
Idempotency-KeystringheaderRequest body
application/json
clientIdstringrequiredkeywordstringrequireddepthintegerlocationCodeintegerlanguageCodestringmaxCostMicrosintegerdryRunboolean{
"clientId": "string",
"keyword": "string",
"depth": 10,
"locationCode": null,
"languageCode": null,
"maxCostMicros": 0,
"dryRun": true
}Code samples
cURL
curl -X POST "https://seolyticize.com/api/v1/tools/get_serp_content_profile" \
-H "Authorization: Bearer $SEOLYTICIZE_API_KEY" \
-H "Idempotency-Key: <value>" \
-H "Content-Type: application/json" \
-d '{"clientId":"string","keyword":"string","depth":10,"locationCode":null,"languageCode":null,"maxCostMicros":0,"dryRun":true}'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_content_profile
WWW-AuthenticatestringSame as 400 · POST /api/v1/tools/get_serp_content_profile
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_serp_content_profile
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_serp_content_profile
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_serp_content_profile
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_serp_content_profile
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerRetry-AfterintegerSame as 400 · POST /api/v1/tools/get_serp_content_profile
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-Resetinteger