Audit
Run a comprehensive SEO audit on any URL.
Returns an overall score (0–100), letter grade, prioritized fix recommendations, and a audit block of category breakdowns (SEO, performance, accessibility, AI readability).
Paid plans (Starter $5/mo and up) additionally receive:
- sxo, aeo, aio — extended scoring blocks
- history — delta vs the previous audit for this URL (overall score, grade change, per-category deltas, days since)
- Full priorities list and uncapped per-category checks
Every priority carries plain_english (one jargon-free sentence) and who_fixes_it (developer | content | marketing) next to issue/fix.
?include=trackers (paid plans) adds a trackers block: the same inventory as GET /trackers, at no extra audit. It adds a few seconds.
?include=conversion (paid plans) adds a conversion block: the same score and fix list as GET /conversion, at no extra audit. Combine them: ?include=trackers,conversion.
Free / demo keys see gated placeholders for the paid blocks (_extended_gated, history._gated, _priorities_gated).
Core Web Vitals are opt-in: ?cwv=true (every plan, no extra charge, never part of the score). The response always carries a core_web_vitals object with lcp_ms, inp_ms, cls, fcp_ms, ttfb_ms, checks and a status:
- not_requested (the default): no measurement was made; the metrics are null and hint says how to ask. A default audit never waits on PageSpeed.
- ok: measured by Google PageSpeed Insights. source is field (real-user Chrome UX Report data) or lab; _cached: true when it came from the 24 hour cache. A cached measurement is included even without cwv=true, because it costs no time.
- unavailable: cwv=true was set but PageSpeed failed, rate limited us or was too slow; reason says which. The audit itself still succeeds.
- unavailable with pending: true: PageSpeed was still measuring when the wait ran out (about 25 seconds). The measurement finishes in the background; the next audit of that URL has it.
With cwv=true the first audit of a URL takes about 10 seconds longer; repeats within 24 hours are instant. Set your client timeout to 60 seconds.
Requires an API key passed in the X-API-Key header.
Request
- Base URL: https://seoscoreapi.com (the document declares no server; this is the origin it was published from)
- URL: https://seoscoreapi.com/audit
- Auth: none declared. Required headers: X-API-Key
Query parameters
The URL to audit (e.g., https://example.com)
Comma-separated extras on paid plans: trackers (tracker and pixel inventory) and conversion (conversion score). Each adds a few seconds.
Set cwv=true to include measured Core Web Vitals (LCP, INP, CLS, FCP, TTFB from Google PageSpeed Insights) in core_web_vitals. Off by default because the first measurement of a URL adds about 10 seconds (up to 25); it is then cached for 24 hours. Available on every plan, costs nothing extra and never changes the score.
Headers
Your API key from /signup
Response
Successful Response
Changes
No recorded changes to this operation across all 1 revision of this API.