Content audit: keep, update, merge or review each page
https://seolyticize.com /api/v1/tools/get_content_audit A verdict for every page meant to rank in the latest crawl, from its Google search over the last 90 days against the 90 before (page-level Search Console, top query included), its length and whether it nearly duplicates another page: keep (earning and steady), update (losing clicks, seen but rarely clicked, or thin for the demand it has), merge (near-duplicate of another page) review (no search demand in six months — improve it, fold it into another, or noindex it, after checking its links and conversions; never deleted on this alone) or no_search_data (no Search Console rows for it, and too little history to call that absent demand). Each with the reason; excluded counts the crawled pages left out (non-200, noindex, canonical elsewhere, parameter copies). Without Search Console only merge is judged. Answers 'which pages should we refresh, merge or prune'. Free.
Parameters
Idempotency-KeystringheaderRequest body
application/json
clientIdstringrequiredverdictstringlimitinteger{
"clientId": "string",
"verdict": null,
"limit": 500
}Code samples
cURL
curl -X POST "https://seolyticize.com/api/v1/tools/get_content_audit" \
-H "Authorization: Bearer $SEOLYTICIZE_API_KEY" \
-H "Idempotency-Key: <value>" \
-H "Content-Type: application/json" \
-d '{"clientId":"string","verdict":null,"limit":500}'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_content_audit
WWW-AuthenticatestringSame as 400 · POST /api/v1/tools/get_content_audit
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_content_audit
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_content_audit
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_content_audit
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_content_audit
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerRetry-AfterintegerSame as 400 · POST /api/v1/tools/get_content_audit
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-Resetinteger