Skip to content
SEO Optimizer is live, Audit on page SEO and AI-search readiness. Try it free
Sign in
Website Audit

API Reference

Website Audit

Runs a full website audit and returns Performance, SEO, Accessibility, and Best Practices scores (0-100 each) with AI-generated fixes tailored to the detected tech stack.

POST/api/auditsynchronous

Performance scores, SEO issues, and AI recommendations

Request body

{
  "url": "https://example.com",
  "budget": { ... }   // optional, see below
}

Response

{
  "reportId": "clxyz...",
  "url": "https://example.com",
  "performanceScore": 91,
  "seoScore": 87,
  "accessibilityScore": 100,
  "bestPracticesScore": 95,
  "issues": [...],
  "recommendations": [...],
  "fixes": [...],
  "aiSummary": "...",
  "techStack": [...],
  "perfBudget": { ... },
  "budgetViolations": [...]  // when a budget was sent
}

Example

curl -X POST https://www.scanverra.com/api/audit \
  -H "X-API-Key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com"}'

Performance budgets

Every API response includes perfBudget: limits based on this audit (+10% or a minimum margin) and the third parties it found. Save it, then send it back as budget on later audits to get budgetViolations: anything slower, heavier, or a new third party. The CLI does this with scanverra audit --save-budget and --budget.

"perfBudget": {
  "version": 1,
  "device": "desktop",
  "metrics": { "lcp": 2600, "tbt": 250, "cls": 0.05, "fcp": 1400 },
  "transferBytes": 1843200,
  "scriptBytes": 921600,
  "requestCount": 62,
  "vendors": ["Google Analytics", "Hotjar"]
}

"budgetViolations": [
  { "key": "lcp", "limit": 2600, "actual": 3120 },
  { "key": "vendor", "limit": "not in budget", "actual": "Intercom" }
]

Re-audits on the Free plan

Free accounts get 5 audits a month with no wait. After that, re-auditing the same website within 15 minutes returns 429 with code: "SCAN_COOLDOWN" and a Retry-After header (seconds). Paid plans never wait.

Scoring convention

Each score runs from 0-100. Scanverra's UI treats ≥90 as good, 50-89 as needs improvement, and <50 as poor. There is no built-in pass/fail gate on this endpoint — pick your own threshold per score when using it in a pipeline (see CI/CD Integration).