Accessibility APIDeveloper Documentation
Integrate WCAG compliance testing into your CI/CD pipeline. Automate accessibility scans with our powerful REST API.
Secure & Reliable
Enterprise-grade security with rate limiting and API key authentication.
Lightning Fast
Complete accessibility scans in under 60 seconds with detailed results.
Well Documented
Clear examples and comprehensive guides to get you started quickly.
Quick Start
# Install via npm (optional helper)
npm install @accesscheck/sdk
# Or use direct API calls
const response = await fetch('https://accesscheck.app/api/v1/scan', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
url: 'https://your-website.com'
})
});
const data = await response.json();
console.log(`Found ${data.violations.length} accessibility issues`);💡 Pro Tip: Get your API key from Settings → API Keys and start scanning immediately!
Authentication
All API requests require authentication using a Bearer token in the Authorization header.
Authorization: Bearer YOUR_API_KEY✅ Correct
Bearer sk_live_abc123...❌ Incorrect
sk_live_abc123... (missing "Bearer")API Endpoints
/api/v1/scan🔐 Auth RequiredScan URL
Performs a comprehensive accessibility scan on a given URL
Parameters
urlstringrequiredThe URL to scan (must be publicly accessible)
standardstringWCAG standard to test against (default: 'wcag2aa')
Example Request
curl -X POST https://accesscheck.app/api/v1/scan \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"standard": "wcag2aa"
}'Response
{
"success": true,
"scanId": "scan_abc123",
"url": "https://example.com",
"violations": [
{
"id": "color-contrast",
"impact": "serious",
"description": "Elements must have sufficient color contrast",
"nodes": [...]
}
],
"passes": 45,
"incomplete": 2,
"timestamp": "2025-10-15T12:00:00Z"
}/api/v1/scan/:scanId🔐 Auth RequiredGet Scan Results
Retrieves the results of a previously completed scan
Parameters
scanIdstringrequiredThe unique identifier of the scan
Example Request
curl -X GET https://accesscheck.app/api/v1/scan/scan_abc123 \
-H "Authorization: Bearer YOUR_API_KEY"Response
{
"success": true,
"scanId": "scan_abc123",
"status": "completed",
"url": "https://example.com",
"violations": [...],
"passes": 45,
"incomplete": 2,
"createdAt": "2025-10-15T12:00:00Z",
"completedAt": "2025-10-15T12:00:15Z"
}/api/v1/scheduled-scans🔐 Auth RequiredCreate Scheduled Scan
Sets up automated recurring scans for a URL
Parameters
urlstringrequiredThe URL to monitor
frequencystringrequiredScan frequency: 'daily', 'weekly', or 'monthly'
notifyEmailbooleanSend email notifications on issues (default: true)
Example Request
curl -X POST https://accesscheck.app/api/v1/scheduled-scans \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"frequency": "daily",
"notifyEmail": true
}'Response
{
"success": true,
"scheduledScanId": "sched_xyz789",
"url": "https://example.com",
"frequency": "daily",
"nextScan": "2025-10-16T12:00:00Z",
"status": "active"
}/api/v1/user/usage🔐 Auth RequiredGet Usage Statistics
Retrieves your current API usage and limits
Example Request
curl -X GET https://accesscheck.app/api/v1/user/usage \
-H "Authorization: Bearer YOUR_API_KEY"Response
{
"success": true,
"plan": "pro",
"scansUsed": 245,
"scansLimit": 10000,
"resetDate": "2025-11-01T00:00:00Z",
"apiKeyStatus": "active"
}Rate Limits
Free Plan
- 10 scans per day
- 60 requests per minute
- Trial features included
Pro Plan
- 10,000 scans per month
- 300 requests per minute
- Priority support
⚠️ Rate Limit Headers: Check X-RateLimit-Remaining and X-RateLimit-Reset headers in API responses to monitor your usage.
Error Codes
| Status Code | Description |
|---|---|
| 200 | Success - Request completed successfully |
| 400 | Bad Request - Invalid parameters or malformed request |
| 401 | Unauthorized - Missing or invalid API key |
| 403 | Forbidden - API key doesn't have required permissions |
| 404 | Not Found - Resource doesn't exist |
| 429 | Too Many Requests - Rate limit exceeded |
| 500 | Internal Server Error - Something went wrong on our end |