Audit one page
https://seolyticize.com /api/v1/tools/audit_page Fetches one page of the client's site now and runs the crawler's full rule engine over it, plus page-level thresholds: title 30–60 characters, meta description 120–160, exactly one H1 and no skipped heading levels, og:title, og:description, og:image and og:url, twitter:card, twitter:title and twitter:description, alt text 10–125 characters, images over 200KB (warning) or 500KB (critical), and a word-count floor for the page type (home 500, service 800, primary location 600, secondary location 500, blog 1,500, product, category and about 400, landing 600, FAQ 800; pageType overrides the guess from the URL and markup), Flesch reading ease (60–70 suits a general audience; only under 30 is flagged, since it is not a ranking factor), query parameters in the URL (tracking parameters aside), links from the copy itself to the site's own pages against the page type's target (blog 5–10, service 3–5, product 2–4; navigation, header and footer links not counted), and templated metadata (a description that restates the title, closes on a stock call to action or repeats the title's brand suffix). Returns an overall score and five sub-scores (on-page, content, technical, schema, images; null where not measured), every issue by severity with its fix, and generate_schema's suggestions for the page. render 'auto' renders the page in a browser when its HTML looks like an unrendered shell. A heuristic. Answers 'what is wrong with this page' and 'is this page ready'. Free.
Parameters
Idempotency-KeystringheaderRequest body
application/json
clientIdstringrequiredurlstringrequiredrenderstringpageTypestring{
"clientId": "string",
"url": "string",
"render": "auto",
"pageType": null
}Code samples
cURL
curl -X POST "https://seolyticize.com/api/v1/tools/audit_page" \
-H "Authorization: Bearer $SEOLYTICIZE_API_KEY" \
-H "Idempotency-Key: <value>" \
-H "Content-Type: application/json" \
-d '{"clientId":"string","url":"string","render":"auto","pageType":null}'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/audit_page
WWW-AuthenticatestringSame as 400 · POST /api/v1/tools/audit_page
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/audit_page
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/audit_page
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/audit_page
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/audit_page
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerRetry-AfterintegerSame as 400 · POST /api/v1/tools/audit_page
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-Resetinteger