API documentation
Start website checks and fetch reports programmatically. Ideal for CI pipelines and your own tools.
Authentication
Create an API key in your account and send it as a bearer token: “Authorization: Bearer xck_…”. Each key belongs to your account; scans run in your organization’s context.
Quick start
Start a scan (returns 202 with a job id):
curl -X POST https://xcheck.dev/api/v1/scans \
-H "Authorization: Bearer xck_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/","wcag":"2.2-AA"}' Check the status (queued/running/done/failed); when “done”, the response includes the reportId:
curl https://xcheck.dev/api/v1/scans/SCAN_ID \
-H "Authorization: Bearer xck_YOUR_KEY" Fetch the finished report as JSON:
curl https://xcheck.dev/api/v1/reports/REPORT_ID \
-H "Authorization: Bearer xck_YOUR_KEY"Error codes
401 unauthorizedAPI key missing or invalid.403 org_limitThe organization’s monthly scan limit is reached.404 not_foundScan/report not found or no access.429 rate_limitedRate limit reached. The “Retry-After” header gives the wait time in seconds.
Default rate limit: 30 scans per hour per key holder. Errors always carry the fields error.code and error.message.
OpenAPI spec
The full, machine-readable specification is at https://xcheck.dev/api/v1/openapi.json