SEO scorecard with an action plan
https://seolyticize.com /api/v1/tools/get_seo_scorecard One 0–100 score for the site from its latest crawl (or crawlId), as seven weighted categories: Technical 22 (crawl, indexing, security and URL rules), Content 23 (thin and duplicate content, averaged with E-E-A-T over a sample of top pages), On-page 20 (titles, descriptions, headings, links, Open Graph), Schema 10 (structured-data rules and the share of pages with valid markup), Performance 10 (Chrome UX Report pass 100 / fail 50, averaged with the audit's Lighthouse runs), AI readiness 10 (the top pages' answer readiness) and Images 5. Each category says how it was measured, or that it was not (then the others are rescaled, never scored as zero), with its worst findings. Also the business type detected from the homepage and URLs (SaaS, local, ecommerce, publisher, agency; stored on the client brief), the five worst critical issues, five quick wins (warnings confined to one URL template, so one fix clears them) and a four-phase plan: critical issues in week 1, warnings in weeks 2–3, content and authority in month 2, then monitoring. Findings accepted as intentional (accept_issue) count against nothing and are listed in accepted with their reason. A heuristic beside the audit's health score, which is unchanged. Answers 'how is the site doing overall' and 'what should we fix first'. Free.
Parameters
Idempotency-KeystringheaderRequest body
application/json
clientIdstringrequiredcrawlIdstring{
"clientId": "string",
"crawlId": "latest"
}Code samples
cURL
curl -X POST "https://seolyticize.com/api/v1/tools/get_seo_scorecard" \
-H "Authorization: Bearer $SEOLYTICIZE_API_KEY" \
-H "Idempotency-Key: <value>" \
-H "Content-Type: application/json" \
-d '{"clientId":"string","crawlId":"latest"}'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_seo_scorecard
WWW-AuthenticatestringSame as 400 · POST /api/v1/tools/get_seo_scorecard
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_seo_scorecard
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_seo_scorecard
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_seo_scorecard
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_seo_scorecard
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerRetry-AfterintegerSame as 400 · POST /api/v1/tools/get_seo_scorecard
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-Resetinteger