Back to checker

Developer reference

One API for accessible, readable pages.

Connect CMS publishing workflows, WordPress, Drupal, and custom build pipelines to the same OpenADA checks.

Endpoints

OpenAPI JSON
POST/api/v1/check

Combined check

Run axe-core accessibility checks and LanguageTool-compatible language checks against HTML, text, or a public URL.

curl -X POST https://openada.us/api/v1/check \
  -H 'Content-Type: application/json' \
  -d '{"html":"<main><h1>Hello</h1></main>","language":"en-US"}'
POST/api/v1/scans

Queue a public site scan

Start an asynchronous crawl of up to 100 same-host pages. The response includes a job id for progress polling.

curl -X POST https://openada.us/api/v1/scans \
  -H 'Content-Type: application/json' \
  -d '{"url":"https://example.com","crawl":true,"maxPages":50}'
GET/api/v1/scans/{jobId}

Scan progress and report

Poll the queued scan, then use the completed result and scan history to build a report.

curl https://openada.us/api/v1/scans/{jobId}
GET/api/v1/directory

Browse the directory

List public sites. Add ?site=example.com to retrieve its observed pages and scan history.

POST/api/v1/ada/check

ADA only

Run axe-core WCAG checks against submitted HTML.

POST/api/v2/check

LanguageTool compatible

Use OpenADA as a LanguageTool-compatible spelling and grammar provider.

Grade scale

Grades are derived from the ADA score returned by axe-core findings.

A+ 97-100A 93-96B 85-92C 70-84D 50-69F 0-49

Authentication

Public deployments can allow anonymous checks. When API keys are configured, send X-API-Key or Authorization: Bearer ....

Widget

Add the hosted widget to a public page to submit its URL and show a small score badge. The widget never receives private page content.

Scan controls

Public scans can be disabled with OPENADA_PUBLIC_SCANS_ENABLED=false, limited with OPENADA_SCAN_ALLOWED_HOSTS, or protected with OPENADA_API_KEYS.