Set a manual WCAG review state
PUT
/v1/sites/{id}/a11y-manual-checks
const url = 'https://api.overwatch.weareheavy.dev/v1/sites/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/a11y-manual-checks';const options = { method: 'PUT', headers: {'x-api-key': '<x-api-key>', 'Content-Type': 'application/json'}, body: '{"sc":"2.1.4","status":"verified","note":"No character-key shortcuts on the site."}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PUT \ --url https://api.overwatch.weareheavy.dev/v1/sites/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/a11y-manual-checks \ --header 'Content-Type: application/json' \ --header 'x-api-key: <x-api-key>' \ --data '{ "sc": "2.1.4", "status": "verified", "note": "No character-key shortcuts on the site." }'Record a manual review state for a WCAG success criterion automation
can’t test (e.g. 2.1.4 Character Key Shortcuts): verified,
not_applicable, or failed, each with an optional note. Upserts —
setting a criterion again replaces its state.
A documentation/audit layer only: manual states never affect the score
or verdict. They surface in the report’s manualChecks and overlay the
coverage matrix.
Authorizations
Section titled “ Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “ Path Parameters ”id
required
string format: uuid
The site’s UUID.
Request Bodyrequired
Section titled “ Request Bodyrequired ”Media typeapplication/json
object
sc
required
The WCAG success criterion, e.g. 2.1.4.
string
status
required
string
note
An optional note for the audit trail.
string | null
Example
{ "sc": "2.1.4", "status": "verified", "note": "No character-key shortcuts on the site."}Responses
Section titled “ Responses ”The state was recorded.
Media typeapplication/json
object
ok
required
boolean
Example
{ "ok": true}sc is missing or status is invalid.
Media typeapplication/json
object
error
required
A human-readable error message.
string
Example
{ "error": "status must be verified, not_applicable, or failed"}Missing or invalid credentials.
Media typeapplication/json
object
error
required
A human-readable error message.
string
Example
{ "error": "invalid api key"}No site with that id is visible to the caller.
Media typeapplication/json
object
error
required
A human-readable error message.
string
Example
{ "error": "site not found"}