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

POST/api/scans

Start a new accessibility scan

Request Body

{ "url": "https://example.com", "standard": "wcag21aa" }

Response

{ "id": "scan_abc123", "status": "running", "url": "https://example.com" }
GET/api/scans/:id

Get scan results by ID

Response

{ "id": "scan_abc123", "status": "completed", "score": 87, "violations": [...] }
GET/api/scans

List all scans for the workspace

Response

{ "scans": [...], "total": 42, "page": 1, "limit": 20 }
GET/api/scans/compare

Compare two scans (base vs head)

Response

{ "comparison": { "fixed": [...], "introduced": [...], "persistent": [...] } }
POST/api/crawl

Start a multi-page site crawl

Request Body

{ "url": "https://example.com", "maxPages": 50, "standard": "en301549" }

Response

{ "id": "crawl_xyz789", "status": "running", "pagesQueued": 50 }
GET/api/reports/:id/pdf

Download scan report as PDF

Response

Binary PDF file (application/pdf)
POST/api/webhooks

Create a webhook subscription

Request Body

{ "url": "https://your-server.com/hook", "events": ["scan.completed", "regression.detected"] }

Response

{ "id": "wh_001", "url": "...", "events": [...], "active": true }
GET/api/health

Health check endpoint (public)

Response

{ "status": "ok", "version": "1.0.0" }

Need help integrating? Contact our team or check the Documentation.