API Reference
Integrate RegLayer scanning into your CI/CD pipeline, custom dashboards, or internal tools.
Authentication
All API requests (except /api/health) require a Bearer token in the Authorization header:
Authorization: Bearer your_api_token_here
Generate API tokens from Settings → API Keys in your workspace dashboard.
Rate Limits
Free plan: 60 requests/minute, 10 scans/day
Pro plan: 300 requests/minute, 100 scans/day
Enterprise: Custom limits
Rate limit headers (X-RateLimit-Remaining) are included in every response.
Endpoints
/api/scansStart a new accessibility scan
Request Body
{ "url": "https://example.com", "standard": "wcag21aa" }Response
{ "id": "scan_abc123", "status": "running", "url": "https://example.com" }/api/scans/:idGet scan results by ID
Response
{ "id": "scan_abc123", "status": "completed", "score": 87, "violations": [...] }/api/scansList all scans for the workspace
Response
{ "scans": [...], "total": 42, "page": 1, "limit": 20 }/api/scans/compareCompare two scans (base vs head)
Response
{ "comparison": { "fixed": [...], "introduced": [...], "persistent": [...] } }/api/crawlStart a multi-page site crawl
Request Body
{ "url": "https://example.com", "maxPages": 50, "standard": "en301549" }Response
{ "id": "crawl_xyz789", "status": "running", "pagesQueued": 50 }/api/reports/:id/pdfDownload scan report as PDF
Response
Binary PDF file (application/pdf)
/api/webhooksCreate a webhook subscription
Request Body
{ "url": "https://your-server.com/hook", "events": ["scan.completed", "regression.detected"] }Response
{ "id": "wh_001", "url": "...", "events": [...], "active": true }/api/healthHealth check endpoint (public)
Response
{ "status": "ok", "version": "1.0.0" }Need help integrating? Contact our team or check the Documentation.