Accessalyze API

Public accessibility scanning API — free, no auth required, 100 req/day per IP.

New: the canonical docs page has moved to /docs. This page remains for backwards compatibility.

Endpoints

POST /api/v1/scan Recommended No auth required

Recommended versioned endpoint. Send a JSON body with { "url": "example.com" }. Returns a JSON report with score, violation counts, and top issues.

curl -X POST "https://accessalyze.com/api/v1/scan" \
  -H "Content-Type: application/json" \
  -d '{"url": "example.com"}'
GET /api/public-scan Legacy No auth required

Legacy query-string endpoint. Same response shape as POST /api/v1/scan.

Query Parameters

ParameterRequiredDescription
urlYesThe URL to scan. Bare domains (e.g. example.com) are accepted.

Example Request

curl "https://accessalyze.com/api/public-scan?url=example.com"

Example Response

{
  "url": "https://example.com",
  "score": 72,
  "violationCount": 8,
  "summary": {
    "critical": 1,
    "serious": 3,
    "moderate": 3,
    "minor": 1,
    "total": 8
  },
  "violations": [
    {
      "id": "color-contrast",
      "impact": "serious",
      "description": "Elements must have sufficient color contrast",
      "count": 3,
      "wcagTags": ["wcag2aa", "wcag143"]
    }
  ],
  "wcagLevel": "AA",
  "scannedAt": "2026-04-21T00:00:00.000Z",
  "poweredBy": "Accessalyze",
  "docsUrl": "https://accessalyze.com/api-docs"
}

Score Calculation

SeverityPoints deducted per violation
Critical-25
Serious-10
Moderate-5
Minor-2

Score starts at 100 and is floored at 0. A score of 90+ with zero critical/serious = WCAG AA Verified.

Rate Limits

The public API allows 100 requests per day per IP address. Rate limit headers are included in every response (RateLimit-Remaining, RateLimit-Reset).

Need higher limits? Upgrade to Pro for unlimited scans via the web UI, or contact us for enterprise API access.

Error Codes

StatusMeaning
400Missing or invalid url parameter
429Rate limit exceeded (100 req/day per IP)
500Scan failed — URL unreachable or blocks automated scanners

Use Cases

# Quick CLI usage
curl -s "https://accessalyze.com/api/public-scan?url=mysite.com" | python3 -c "
import sys, json
r = json.load(sys.stdin)
print(f'Score: {r["score"]}/100 — {r["violationCount"]} violations')
"

Attribution

When embedding results in your product, please attribute: Powered by Accessalyze


Built by Accessalyze · GitHub · WCAG Guides