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.

get/audit

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

urlstring required

The URL to audit (e.g., https://example.com)

includestring nullable

Comma-separated extras on paid plans: trackers (tracker and pixel inventory) and conversion (conversion score). Each adds a few seconds.

cwvboolean

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

X-API-Keystring required

Your API key from /signup

Response

Successful Response

unknown required

Changes

No recorded changes to this operation across all 1 revision of this API.