Accessibility

GET /api/v1/accessibility

A static WCAG / axe-core accessibility audit — alt text, form labels, ARIA validity, heading order, landmarks, lang and more. Colour-contrast and tap-target checks need rendering and aren't included.

Query parameters

NameTypeDescription
url requiredstringThe URL to audit.
keystringYour API key. Optional for light use; raises your rate limit.

Request

Response

200 · application/json
  1. {
  2. "url": "https://example.com",
  3. "score": 56,
  4. "grade": "D",
  5. "summary": {
  6. "violations": 3,
  7. "critical": 4,
  8. "serious": 0,
  9. "moderate": 2,
  10. "minor": 0,
  11. "rulesChecked": 23
  12. },
  13. "note": "Static WCAG/axe subset — colour-contrast and tap-target checks need rendering and are not included.",
  14. "violations": [
  15. {
  16. "id": "label",
  17. "impact": "critical",
  18. "description": "Form fields must have labels",
  19. "count": 4,
  20. "nodes": [ { "snippet": "<input type=\"text\" name=\"q\">" } ]
  21. },
  22. {
  23. "id": "heading-order",
  24. "impact": "moderate",
  25. "description": "Heading levels should not skip",
  26. "count": 1,
  27. "nodes": [ { "snippet": "h2 → h4 skips a level" } ]
  28. }
  29. ]
  30. }

Response fields

FieldTypeDescription
scoreinteger0–100, starting at 100 minus an impact-weighted penalty for each violation (critical hurts most, minor least).
gradestringOverall grade AF derived from the score.
summary.violationsintegerNumber of distinct rules that failed.
summary.criticalintegerCount of failing nodes with critical impact.
summary.seriousintegerCount of failing nodes with serious impact.
summary.moderateintegerCount of failing nodes with moderate impact.
summary.minorintegerCount of failing nodes with minor impact.
summary.rulesCheckedintegerHow many rules were evaluated.
notestringReminder that this is a static subset — colour-contrast and tap-target need rendering and aren't included.
violationsarrayOne entry per failing rule.
violations[].idstringThe axe / WCAG rule that failed (e.g. label, heading-order).
violations[].impactstringSeverity: critical, serious, moderate or minor.
violations[].descriptionstringHuman-readable description of the rule.
violations[].countintegerHow many nodes on the page violate this rule.
violations[].nodesarrayUp to 10 offending elements, each with a snippet of the markup.

For full rendered audits (Core Web Vitals), use Lighthouse. See Errors for status codes.